Exemple #1
0
        public void Manager_Work()
        {
            Framework.Ini ini;
            // Begin connection to our database.
            Systems.MsSQL.OnDatabaseError += new Systems.MsSQL.dError(db_OnDatabaseError);
            // Read our database settings from our ini file.
            Systems.MsSQL.OnConnectedToDatabase += new Systems.MsSQL.dConnected(db_OnConnectedToDatabase);
            // Check if our ini file excists.
            string sqlConnect  = @"Data Source=(local)\SQLEXPRESS;Initial Catalog=silk;Integrated Security=True;MultipleActiveResultSets=True;";
            string sIpIPC      = "";
            string sIpServer   = "";
            UInt16 iPortIPC    = 15780;
            UInt16 iPortServer = 15780;
            UInt16 iPortCmd    = 10101;

            if (System.IO.File.Exists("./Settings/Settings.ini"))
            {
                //Load our ini file
                ini = new Framework.Ini(Environment.CurrentDirectory + @"\Settings\Settings.ini");
                //Read line below given value.
                sqlConnect = ini.GetValue("Database", "connectionstring", @"Data Source=(local)\SQLEXPRESS;Initial Catalog=silk;Integrated Security=True;MultipleActiveResultSets=True;").ToString();
                //Load our rates.
                Game.Rate.Gold        = Convert.ToByte(ini.GetValue("Rates", "Goldrate", 1));
                Game.Rate.Item        = Convert.ToByte(ini.GetValue("Rates", "Droprate", 1));
                Game.Rate.Xp          = Convert.ToByte(ini.GetValue("Rates", "XPrate", 1));
                Game.Rate.Sp          = Convert.ToByte(ini.GetValue("Rates", "SPrate", 1));
                Game.Rate.Sox         = Convert.ToByte(ini.GetValue("Rates", "Sealrate", 1));
                Game.Rate.Elixir      = Convert.ToByte(ini.GetValue("Rates", "Elixirsrate", 1));
                Game.Rate.Alchemyd    = Convert.ToByte(ini.GetValue("Rates", "Alchemyrate", 1));
                Game.Rate.ETCd        = Convert.ToByte(ini.GetValue("Rates", "ETCrate", 1));
                Game.Rate.Spawns      = Convert.ToByte(ini.GetValue("Rates", "Spawnrate", 1));
                iPortIPC              = Convert.ToUInt16(ini.GetValue("IPC", "port", 15780));
                sIpIPC                = ini.GetValue("IPC", "ip", "");
                iPortServer           = Convert.ToUInt16(ini.GetValue("Server", "port", 15780));
                sIpServer             = ini.GetValue("Server", "ip", "");
                iPortCmd              = Convert.ToUInt16(ini.GetValue("CMD", "port", 10101));
                Game.Systems.maxSlots = Convert.ToInt32(ini.GetValue("Server", "MaxSlots", 100));
            }
            else
            {
                Game.Rate.Gold        = 1;
                Game.Rate.Item        = 1;
                Game.Rate.Xp          = 1;
                Game.Rate.Sp          = 1;
                Game.Rate.Sox         = 1;
                Game.Rate.Elixir      = 1;
                Game.Rate.Alchemyd    = 1;
                Game.Rate.ETCd        = 1;
                Game.Rate.Spawns      = 1;
                Game.Systems.maxSlots = 100;
            }
            Systems.MsSQL.Connection(sqlConnect);
            // create servers
            try
            {
                net = new Systems.Server();

                net.OnConnect += new Systems.Server.dConnect(_OnClientConnect);
                net.OnError   += new Systems.Server.dError(_ServerError);

                Systems.ServerStartedTime = DateTime.Now;

                Systems.Client.OnReceiveData += new Systems.Client.dReceive(_OnReceiveData);
                Systems.Client.OnDisconnect  += new Systems.Client.dDisconnect(_OnClientDisconnect);

                #region CommandServer StartUp
                cmd = new Systems.CommandServer();
                cmd.OnCommandReceived += new Systems.CommandServer.dCommandReceived(_command);
                #endregion
                #region IPC Server StartUp
                Systems.IPC            = new Servers.IPCServer();
                Systems.IPC.OnReceive += new Servers.IPCServer.dOnReceive(_OnIPC);
                Systems.LoadServers("LoginServers.ini", 15779);
                #endregion
            }
            catch (Exception)
            {
                //Activity(err);
            }

            Game.Systems.CheckDirectories();

            Game.File.FileLoad.Load(this);
            //Update serverlist info
            Game.Systems.clients.update += new EventHandler(Users.updateServerList);
            //Load random unique monsters.
            Random rand = new Random();

            Game.GlobalUnique.StartTGUnique(rand.Next(10, 20) * 60000, 600);    //Random spawn tiger girl
            Game.GlobalUnique.StartUriUnique(rand.Next(10, 20) * 60000, 600);   //Random spawn urichi
            Game.GlobalUnique.StartIsyUnique(rand.Next(10, 20) * 60000, 600);   //Random spawn isy
            Game.GlobalUnique.StartLordUnique(rand.Next(10, 20) * 60000, 600);  //Random spawn lord yarkan
            Game.GlobalUnique.StartDemonUnique(rand.Next(10, 20) * 60000, 600); //Random spawn demon shaitan
            Game.GlobalUnique.StartCerbUnique(rand.Next(10, 20) * 60000, 600);  //Random spawn cerberus
            Game.GlobalUnique.StartMedusa(rand.Next(10, 20) * 90000, 600);      //Random spawn medusa
            Game.GlobalUnique.StartNeith(rand.Next(10, 20) * 90000, 600);       //Random spawn neith
            //Game.GlobalUnique.StartSphinx       (rand.Next(10, 20) * 90000, 600);   //Random spawn medusa
            Game.GlobalUnique.StartIsis(rand.Next(10, 20) * 90000, 600);        //Random spawn isis
            //Game.GlobalUnique.StartRoc          (rand.Next(10, 20) * 90000, 600);   //Random spawn roc
            Game.GlobalUnique.StartIvyUnique(rand.Next(10, 20) * 60000, 600);   //Random spawn captain ivy

            // start listening servers
            cmd.Start("127.0.0.1", iPortCmd);
            Systems.IPC.Start(sIpIPC, iPortIPC);
            net.Start(sIpServer, iPortServer);
            Systems.UpdateServerInfo();
            // main loop
            lastPromote = DateTime.Now;
            Thread check = new Thread(run);
            check.Start();
            while (check.IsAlive)
            {
                Thread.Sleep(10);
                if (lastPromote.AddSeconds(60) < DateTime.Now)
                {
                    lastPromote = DateTime.Now;
                    Systems.UpdateServerInfo();
                }
            }
            Systems.UpdateServerInfo(0);
            net.ServerCheck(false);
        }
Exemple #2
0
        public void Manager_Work()
        {
            Framework.Ini ini;
            // Begin connection to our database.
            Systems.MsSQL.OnDatabaseError += new Systems.MsSQL.dError(db_OnDatabaseError);
            // Read our database settings from our ini file.
            Systems.MsSQL.OnConnectedToDatabase += new Systems.MsSQL.dConnected(db_OnConnectedToDatabase);
            // Check if our ini file excists.
            string sqlConnect = @"Data Source=(local)\SQLEXPRESS;Initial Catalog=silk;Integrated Security=True;MultipleActiveResultSets=True;";
            string sIpIPC = "";
            string sIpServer = "";
            UInt16 iPortIPC = 15780;
            UInt16 iPortServer = 15780;
            UInt16 iPortCmd = 10101;
            if (System.IO.File.Exists("./Settings/Settings.ini"))
            {
                //Load our ini file
                ini = new Framework.Ini(Environment.CurrentDirectory + @"\Settings\Settings.ini");
                //Read line below given value.
                sqlConnect = ini.GetValue("Database", "connectionstring", @"Data Source=(local)\SQLEXPRESS;Initial Catalog=silk;Integrated Security=True;MultipleActiveResultSets=True;").ToString();
                //Load our rates.
                Game.Rate.Gold = Convert.ToByte(ini.GetValue("Rates", "Goldrate", 1));
                Game.Rate.Item = Convert.ToByte(ini.GetValue("Rates", "Droprate", 1));
                Game.Rate.Xp = Convert.ToByte(ini.GetValue("Rates", "XPrate", 1));
                Game.Rate.Sp = Convert.ToByte(ini.GetValue("Rates", "SPrate", 1));
                Game.Rate.Sox = Convert.ToByte(ini.GetValue("Rates", "Sealrate", 1));
                Game.Rate.Elixir = Convert.ToByte(ini.GetValue("Rates", "Elixirsrate", 1));
                Game.Rate.Alchemyd = Convert.ToByte(ini.GetValue("Rates", "Alchemyrate", 1));
                Game.Rate.ETCd = Convert.ToByte(ini.GetValue("Rates", "ETCrate", 1));
                Game.Rate.Spawns = Convert.ToByte(ini.GetValue("Rates", "Spawnrate", 1));
                iPortIPC = Convert.ToUInt16(ini.GetValue("IPC", "port", 15780));
                sIpIPC = ini.GetValue("IPC", "ip", "");
                iPortServer = Convert.ToUInt16(ini.GetValue("Server", "port", 15780));
                sIpServer = ini.GetValue("Server", "ip", "");
                iPortCmd = Convert.ToUInt16(ini.GetValue("CMD", "port", 10101));
                Game.Systems.maxSlots = Convert.ToInt32(ini.GetValue("Server", "MaxSlots", 100));
            }
            else
            {
                Game.Rate.Gold = 1;
                Game.Rate.Item = 1;
                Game.Rate.Xp = 1;
                Game.Rate.Sp = 1;
                Game.Rate.Sox = 1;
                Game.Rate.Elixir = 1;
                Game.Rate.Alchemyd = 1;
                Game.Rate.ETCd = 1;
                Game.Rate.Spawns = 1;
                Game.Systems.maxSlots = 100;

            }
            Systems.MsSQL.Connection(sqlConnect);
            // create servers
            try
            {
                net = new Systems.Server();

                net.OnConnect += new Systems.Server.dConnect(_OnClientConnect);
                net.OnError += new Systems.Server.dError(_ServerError);

                Systems.ServerStartedTime = DateTime.Now;

                Systems.Client.OnReceiveData += new Systems.Client.dReceive(_OnReceiveData);
                Systems.Client.OnDisconnect += new Systems.Client.dDisconnect(_OnClientDisconnect);

                #region CommandServer StartUp
                cmd = new Systems.CommandServer();
                cmd.OnCommandReceived += new Systems.CommandServer.dCommandReceived(_command);
                #endregion
                #region IPC Server StartUp
                Systems.IPC = new Servers.IPCServer();
                Systems.IPC.OnReceive += new Servers.IPCServer.dOnReceive(_OnIPC);
                Systems.LoadServers("LoginServers.ini", 15779);
                #endregion

            }
            catch (Exception)
            {
                //Activity(err);
            }

            Game.Systems.CheckDirectories();

            Game.File.FileLoad.Load(this);
            //Update serverlist info
            Game.Systems.clients.update += new EventHandler(Users.updateServerList);
            //Load random unique monsters.
            Random rand = new Random();

            Game.GlobalUnique.StartTGUnique(rand.Next(10, 20) * 60000, 600);   //Random spawn tiger girl
            Game.GlobalUnique.StartUriUnique(rand.Next(10, 20) * 60000, 600);   //Random spawn urichi
            Game.GlobalUnique.StartIsyUnique(rand.Next(10, 20) * 60000, 600);   //Random spawn isy
            Game.GlobalUnique.StartLordUnique(rand.Next(10, 20) * 60000, 600);   //Random spawn lord yarkan
            Game.GlobalUnique.StartDemonUnique(rand.Next(10, 20) * 60000, 600);   //Random spawn demon shaitan
            Game.GlobalUnique.StartCerbUnique(rand.Next(10, 20) * 60000, 600);   //Random spawn cerberus
            Game.GlobalUnique.StartMedusa(rand.Next(10, 20) * 90000, 600);   //Random spawn medusa
            Game.GlobalUnique.StartNeith(rand.Next(10, 20) * 90000, 600);   //Random spawn neith
            //Game.GlobalUnique.StartSphinx       (rand.Next(10, 20) * 90000, 600);   //Random spawn medusa
            Game.GlobalUnique.StartIsis(rand.Next(10, 20) * 90000, 600);   //Random spawn isis
            //Game.GlobalUnique.StartRoc          (rand.Next(10, 20) * 90000, 600);   //Random spawn roc
            Game.GlobalUnique.StartIvyUnique(rand.Next(10, 20) * 60000, 600);   //Random spawn captain ivy

            // start listening servers
            cmd.Start("127.0.0.1", iPortCmd);
            Systems.IPC.Start(sIpIPC, iPortIPC);
            net.Start(sIpServer, iPortServer);
            Systems.UpdateServerInfo();
            // main loop
            lastPromote = DateTime.Now;
            Thread check = new Thread(run);
            check.Start();
            while (check.IsAlive)
            {
                Thread.Sleep(10);
                if (lastPromote.AddSeconds(60) < DateTime.Now)
                {
                    lastPromote = DateTime.Now;
                    Systems.UpdateServerInfo();
                }
            }
            Systems.UpdateServerInfo(0);
            net.ServerCheck(false);
        }