Пример #1
0
        void ManageClosing()
        {
            string stringToCompare = "";
            string theEntry        = "";
            string entry           = "";
            string entryData       = "";

            while (stringToCompare != closeString)
            {
                entry = Output.ReadLine();
                if (entry.IndexOf(" ") > 0)
                {
                    theEntry = entry.Substring(0, entry.IndexOf(" ")).ToUpper();
                    if (entry.IndexOf(" ") + 1 < entry.Length)
                    {
                        entryData = entry.Substring(entry.IndexOf(" ") + 1).ToUpper();
                    }
                    else
                    {
                        entryData = "";
                    }
                }
                else
                {
                    theEntry  = entry.ToUpper();
                    entryData = "";
                }

                switch (theEntry)
                {
                case send:
                    break;

                case clear:
                    Output.Clear();
                    break;

                case debug:
                    switch (entryData)
                    {
                    case "":
                        if (Program.DEBUG_Decrypt || Program.DEBUG_Encrypt || Program.DEBUG_Game_Send || Program.DEBUG_Game_Recv || Program.DEBUG_send || Program.DEBUG_recv)
                        {
                            Program.DEBUG_recv      = false;
                            Program.DEBUG_send      = false;
                            Program.DEBUG_Game_Recv = false;
                            Program.DEBUG_Game_Send = false;
                            Program.DEBUG_Decrypt   = false;
                            Program.DEBUG_Encrypt   = false;
                            Output.WriteLine("DEBUG MOD OFF");
                        }
                        else
                        {
                            Output.WriteLine("DEBUG MOD ON");
                            Program.DEBUG_recv      = true;
                            Program.DEBUG_send      = true;
                            Program.DEBUG_Game_Recv = true;
                            Program.DEBUG_Game_Send = true;
                            Program.DEBUG_Decrypt   = true;
                            Program.DEBUG_Encrypt   = true;
                        }
                        break;

                    case "USER":
                        if (Program.DEBUG_recv || Program.DEBUG_send)
                        {
                            Program.DEBUG_recv = false;
                            Program.DEBUG_send = false;
                            Output.WriteLine("USER DEBUG MOD OFF");
                        }
                        else
                        {
                            Output.WriteLine("USER DEBUG MOD ON");
                            Program.DEBUG_recv = true;
                            Program.DEBUG_send = true;
                        }
                        break;

                    case "USER_RECV":
                        if (Program.DEBUG_recv)
                        {
                            Program.DEBUG_recv = false;
                            Output.WriteLine("USER RECV DEBUG MOD OFF");
                        }
                        else
                        {
                            Output.WriteLine("USER RECV DEBUG MOD ON");
                            Program.DEBUG_recv = true;
                        }
                        break;

                    case "USER_SEND":
                        if (Program.DEBUG_send)
                        {
                            Program.DEBUG_send = false;
                            Output.WriteLine("USER SEND DEBUG MOD OFF");
                        }
                        else
                        {
                            Output.WriteLine("USER SEND DEBUG MOD ON");
                            Program.DEBUG_send = true;
                        }
                        break;

                    case "RECV":
                        if (Program.DEBUG_recv_stage1)
                        {
                            Program.DEBUG_recv_stage1 = false;
                            Output.WriteLine("USER RECV STAGE 1 DEBUG MOD OFF");
                        }
                        else
                        {
                            Output.WriteLine("USER RECV STAGE 1 DEBUG MOD ON");
                            Program.DEBUG_recv_stage1 = true;
                        }
                        break;

                    case "SEND":
                        if (Program.DEBUG_send_stage1)
                        {
                            Program.DEBUG_send_stage1 = false;
                            Output.WriteLine("USER SEND STAGE 1 DEBUG MOD OFF");
                        }
                        else
                        {
                            Output.WriteLine("USER SEND STAGE 1 DEBUG MOD ON");
                            Program.DEBUG_send_stage1 = true;
                        }
                        break;

                    case "GAMESERVER":
                        if (Program.DEBUG_Game_Recv || Program.DEBUG_Game_Send)
                        {
                            Program.DEBUG_Game_Recv = false;
                            Program.DEBUG_Game_Send = false;
                            Output.WriteLine("GAME SERVER DEBUG MOD OFF");
                        }
                        else
                        {
                            Output.WriteLine("GAME SERVER DEBUG MOD ON");
                            Program.DEBUG_Game_Recv = true;
                            Program.DEBUG_Game_Send = true;
                        }
                        break;

                    case "GAMESERVER_RECV":
                        if (Program.DEBUG_Game_Recv)
                        {
                            Program.DEBUG_Game_Recv = false;
                            Output.WriteLine("GAME SERVER RECV DEBUG MOD OFF");
                        }
                        else
                        {
                            Output.WriteLine("GAME SERVER RECV DEBUG MOD ON");
                            Program.DEBUG_Game_Recv = true;
                        }
                        break;

                    case "GAMESERVER_SEND":
                        if (Program.DEBUG_Game_Send)
                        {
                            Program.DEBUG_Game_Send = false;
                            Output.WriteLine("GAME SERVER SEND DEBUG MOD OFF");
                        }
                        else
                        {
                            Output.WriteLine("GAME SERVER SEND DEBUG MOD ON");
                            Program.DEBUG_Game_Send = true;
                        }
                        break;

                    case "DECRYPT":
                        if (Program.DEBUG_Decrypt)
                        {
                            Program.DEBUG_Decrypt = false;
                            Output.WriteLine("DECRYPT DEBUG MOD OFF");
                        }
                        else
                        {
                            Output.WriteLine("DECRYPT DEBUG MOD ON");
                            Program.DEBUG_Decrypt = true;
                        }
                        break;

                    case "ENCRYPT":
                        if (Program.DEBUG_Encrypt)
                        {
                            Program.DEBUG_Encrypt = false;
                            Output.WriteLine("ENCRYPT DEBUG MOD OFF");
                        }
                        else
                        {
                            Output.WriteLine("ENCRYPT DEBUG MOD ON");
                            Program.DEBUG_Encrypt = true;
                        }
                        break;

                    default:
                        Output.WriteLine("WRONG IN COMMAND DATA");
                        break;
                    }
                    break;

                case reconnectGServers:
                    worldListener.StartListening();
                    Output.WriteLine("Reconnect done");
                    break;

                case info:
                    switch (entryData)
                    {
                    case "":
                        Output.WriteLine("Number of active connections = " + userListener.ConnectionCount.ToString() + " Active in pool: " + userListener.ActiveConnInPool.ToString() + " and Inactive: " + userListener.InactiveConnInPool.ToString());
                        break;

                    case "PLAYER":
                        Output.WriteLine("Number of in game users = " + InGameUsers.UsersCount().ToString());
                        Output.WriteLine("Number of waiting users = " + Users.Count.ToString());
                        break;

                    default:
                        Output.WriteLine("Unrecognized command");
                        break;
                    }
                    break;

                case closeString:
                    stringToCompare = closeString;
                    break;

                case testString:
                    Output.SetOut(Output.OutType.Console);    //set default output to window console
                    break;

                case helpString:
                    Output.WriteLine("Commands:");
                    Output.WriteLine("/help - show commands");
                    Output.WriteLine("/close - close server");
                    Output.WriteLine("info - some info about server");
                    Output.WriteLine("/cls - clear output window");
                    Output.WriteLine("/debug - show debug info");
                    break;

                default:
                    Output.WriteLine("Unrecognized command");
                    break;
                }
            }
        }