[Release] server maintenance in 5165 source

03/14/2010 12:11 gulpi_de_gulat#1
i post this in 4botters months ago so i decided to here too.
to let your players know that you have a server maintenance or something to to fix your server.
put in your program.cs
Code:
if (Cmd[0] == "/sm")
                    {
                        Game.World.SendMsgToAll("SYSTEM", "Server Maintanience in 5 minutes! Please log off to avoid data lost!", 2011, 0);
                        new Thread(new ThreadStart(
                        delegate()
                        {
                            Console.WriteLine("Server Maintenance Command Activated (via Console).");
                            Thread.Sleep(30000);
                            Game.World.SendMsgToAll("SYSTEM", "Server Maintenance in 4 minutes and 30 Seconds! Please Log off to prevent data loss!", 2011, 0);
                            Console.WriteLine("4 Minutes 30 seconds Left");
                            Thread.Sleep(30000);
                            Game.World.SendMsgToAll("SYSTEM", "Server Maintenance in 4 minutes! Please Log off to prevent data loss!", 2011, 0);
                            Console.WriteLine("4 Minutes Left");
                            Thread.Sleep(30000);
                            Game.World.SendMsgToAll("SYSTEM", "Server Maintenance in 3 minutes and 30 Seconds! Please Log off to prevent data loss!", 2011, 0);
                            Console.WriteLine("3 Minutes 30 seconds Left");
                            Thread.Sleep(30000);
                            Game.World.SendMsgToAll("SYSTEM", "Server Maintenance in 3 minutes! Please Log off to prevent data loss!", 2011, 0);
                            Console.WriteLine("3 Minutes Left");
                            Thread.Sleep(30000);
                            Game.World.SendMsgToAll("SYSTEM", "Server Maintenance in 2 minutes and 30 Seconds! Please Log off to prevent data loss!", 2011, 0);
                            Console.WriteLine("2 Minutes 30 seconds Left");
                            Thread.Sleep(30000);
                            Game.World.SendMsgToAll("SYSTEM", "Server Maintenance in 2 minutes! Please Log off to prevent data loss!", 2011, 0);
                            Console.WriteLine("2 Minutes Left");
                            Thread.Sleep(30000);
                            Game.World.SendMsgToAll("SYSTEM", "Server Maintenance in 1 minute and 30 Seconds! Please Log off to prevent data loss!", 2011, 0);
                            Console.WriteLine("1 Minutes 30 seconds Left");
                            Thread.Sleep(30000);
                            Game.World.SendMsgToAll("SYSTEM", "Server Maintenance in 1 minute! Please Log off to prevent data loss!", 2011, 0);
                            Console.WriteLine("1 Minute Left");
                            Thread.Sleep(30000);
                            Game.World.SendMsgToAll("SYSTEM", "Server Maintenance in 30 Seconds! Please Log off to prevent data loss!", 2011, 0);
                            Console.WriteLine("30 Seconds Left");
                            Thread.Sleep(30000);
                            Console.WriteLine("Server is now shutting down...");
                            Game.Character[] BaseCharacters = new Character[World.H_Chars.Count];
                            World.H_Chars.Values.CopyTo(BaseCharacters, 0);
                            NewestCOServer.Main.AuthWorker.Listener.Close();
                            NewestCOServer.Main.GameWorker.Listener.Close();
                            EndSession = true;
                            try
                            {
                                foreach (Game.Character C in BaseCharacters)
                                {
                                    Character Char = (Character)C.Value;
                                    C.MyClient.Disconnect();
                                    Console.WriteLine(C.Name + " is hard headed has force to logged off by the system.");
                                }
                            }
                            catch { }
                            Database.SaveKOs();
                            Console.WriteLine("KOs saved.");
                            Database.SaveEmpire();
                            Console.WriteLine("Empire saved.");
                            Features.Guilds.SaveGuilds();
                            Console.WriteLine("Guilds saved.");
                            DMaps.Save();
                            Features.SkillsClass.Save();
                            Console.WriteLine("Skills saved.");
                            DMaps.Save();
                            HouseItem.Save();

                            Console.WriteLine("Dynamic Maps Saved.");

                            MobThread.Close();
                            ServerStuff.Close();
                            CompanionThread.Close();
                            Database.Dispose();
                            Console.WriteLine("Database disposed.");
                            Console.WriteLine("Click X to close the window.");
                            Console.WriteLine("GOODBYE :D");
                        }
                    )).Start();
                    }
just type the console /sm
03/14/2010 12:22 arab4life#2
Good Job.
03/14/2010 12:23 coreymills#3
nice work keep it up
03/14/2010 23:41 walmartboi#4
Why have so many Thread.Sleeps? Why not create a timer that sends a message every 30 seconds?
03/14/2010 23:55 gulpi_de_gulat#5
Quote:
Originally Posted by walmartboi View Post
Why have so many Thread.Sleeps? Why not create a timer that sends a message every 30 seconds?
i have message every 12 mins just wait i post it
08/31/2010 19:39 koshergreat#6
where is program.cs
08/31/2010 22:31 killersub#7
Quote:
Originally Posted by koshergreat View Post
where is program.cs
this definitely made my weekend...

[Only registered and activated users can see links. Click Here To Register...]
09/01/2010 00:20 ImFlamedCOD#8
Quote:
Console.WriteLine("Click X to close the window.");
Console.WriteLine("GOODBYE :D");
Environment.Exit(1);//Automatically Will Close The Console Out :)
Instead of having to click (X)
09/01/2010 13:47 _DreadNought_#9
uhm
Code:
[COLOR="Magenta"]
NewestCOServer.Main.AuthWorker.Listener.Close();
NewestCOServer.Main.GameWorker.Listener.Close();[/COLOR]
try
                            {
                                foreach (Game.Character C in BaseCharacters)
                                {
                                    Character Char = (Character)C.Value;
                                    C.MyClient.Disconnect();
                                    Console.WriteLine(C.Name + " is hard headed has force to logged off by the system.");
                                }
                            }
                            catch { }
The code in purple disconnects everyone anyway? Why re-disconnect nobody? oo I might be wrong but by the looks...

Do the try then the code in purple.
09/01/2010 22:24 FrontBoy#10
Thanksssss man! This realy helped ^^
09/02/2010 03:34 µ~Xero~µ#11
are you fucking serious with that release?