private static bool ConquordConsole_CloseEvent(CtrlType sig) { if (MessageBox.Show("Do You Want To Close Console ...?", "Message", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { Save(); foreach (Client.GameClient client in Kernel.GamePool.Values) { client.Disconnect(); } GameServer.Disable(); AuthServer.Disable(); if (GuildWar.IsWar) { GuildWar.End(); } if (EliteGuildWar.IsWar) { EliteGuildWar.End(); } if (ClanWar.IsWar) { ClanWar.End(); } if (CaptureTheFlag.IsWar) { CaptureTheFlag.Close(); } Application.Exit(); Environment.Exit(0); return(false); } else { return(true); } }
public static void CommandsAI(string command) { try { if (command == null) { return; } string[] data = command.Split(' '); switch (data[0]) { case "@clear": { System.Console.Clear(); Console.WriteLine("Consle And Program Cleared !!"); break; } case "@Conquord": case "@Eslam": Console.WriteLine("Server will restart after 10 minutes."); foreach (var client in Kernel.GamePool.Values) { client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 5 minute, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System)); System.Threading.Thread.Sleep(0x7530); client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 4 minute 30 second, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System)); System.Threading.Thread.Sleep(0x7530); client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 4 minute, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System)); System.Threading.Thread.Sleep(0x7530); client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 3 minute 30 second, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System)); System.Threading.Thread.Sleep(0x7530); client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 3 minute, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System)); System.Threading.Thread.Sleep(0x7530); client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 2 minute 30 second, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System)); System.Threading.Thread.Sleep(0x7530); client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 2 minute, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System)); System.Threading.Thread.Sleep(0x7530); client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 1 minute 30 second, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System)); System.Threading.Thread.Sleep(0x7530); client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 1 minute, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System)); System.Threading.Thread.Sleep(0x7530); client.Send(new Conquord.Network.GamePackets.Message("The server will be brought down for maintenance in 30 second, Please exit the game now.", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System)); Console.WriteLine("Server will exit after 1 minute."); CommandsAI("@save"); System.Threading.Thread.Sleep(0x7530); client.Send(new Conquord.Network.GamePackets.Message("The Server restarted, Please log in after 2 minutes! ", System.Drawing.Color.Red, Conquord.Network.GamePackets.Message.System)); } try { CommandsAI("@restart"); } catch { Console.WriteLine("Server Cannot Exit ."); } break; try { CommandsAI("@restart"); } catch { Console.WriteLine("Server Cannot Exit"); } break; case "@flushbans": { Database.IPBan.Load(); break; } case "@SNX": { ShaDow.ShaDowNpcControl ShaDow = new ShaDow.ShaDowNpcControl(); ShaDow.ShowDialog(); break; } case "@online": { Console.WriteLine("Online Players Count : " + Kernel.GamePool.Count); string line = ""; foreach (Client.GameClient pClient in Program.Values) { line += pClient.Entity.Name + ","; } if (line != "") { line = line.Remove(line.Length - 1); Console.WriteLine("Players : " + line); } break; } case "@memoryusage": { var proc = System.Diagnostics.Process.GetCurrentProcess(); Console.WriteLine("Thread count: " + proc.Threads.Count); Console.WriteLine("Memory set(MB): " + ((double)((double)proc.WorkingSet64 / 1024)) / 1024); proc.Close(); break; } case "@save": { Save(); } break; case "@skill": { Game.Features.Tournaments.TeamElitePk.SkillTeamTournament.Open(); foreach (var clien in Kernel.GamePool.Values) { if (clien.Team == null) { clien.Team = new Game.ConquerStructures.Team(clien); } Game.Features.Tournaments.TeamElitePk.SkillTeamTournament.Join(clien, 3); } break; } case "@team": { Game.Features.Tournaments.TeamElitePk.TeamTournament.Open(); foreach (var clien in Kernel.GamePool.Values) { if (clien.Team == null) { clien.Team = new Game.ConquerStructures.Team(clien); } Game.Features.Tournaments.TeamElitePk.TeamTournament.Join(clien, 3); } break; } case "@exit": { GameServer.Disable(); AuthServer.Disable(); Save(); Database.EntityVariableTable.Save(0, Vars); var WC = Program.Values.ToArray(); Parallel.ForEach(Program.Values, client => { client.Send("Server Will Exit For 5 Min to Fix Some Bugs, Please Be Paitent !"); client.Disconnect(); }); Kernel.SendWorldMessage(new Network.GamePackets.Message(string.Concat(new object[] { "Server Will Exit For 5 Min to Fix Some Bugs, Please Be Paitent" }), System.Drawing.Color.Black, 0x7db), Program.Values); CommandsAI("@save"); if (GuildWar.IsWar) { GuildWar.End(); } Save(); Environment.Exit(0); } break; case "@pressure": { Console.WriteLine("Genr: " + World.GenericThreadPool.ToString()); Console.WriteLine("Send: " + World.SendPool.ToString()); Console.WriteLine("Recv: " + World.ReceivePool.ToString()); break; } case "@restart": { try { Kernel.SendWorldMessage(new Network.GamePackets.Message(string.Concat(new object[] { "Server Will Be Restart Now !" }), System.Drawing.Color.Black, 0x7db), Program.Values); CommandsAI("@save"); Save(); var WC = Program.Values.ToArray(); foreach (Client.GameClient client in WC) { client.Send("Server Will Restart !"); client.Disconnect(); } GameServer.Disable(); AuthServer.Disable(); if (GuildWar.IsWar) { GuildWar.End(); } Save(); Application.Restart(); Environment.Exit(0); } catch (Exception e) { Console.WriteLine(e); Console.ReadLine(); } } break; case "@account": { Database.AccountTable account = new AccountTable(data[1]); account.Password = data[2]; account.State = AccountTable.AccountState.Player; account.Save(); } break; } } catch (Exception e) { Console.WriteLine(e.ToString()); } }