Ejemplo n.º 1
0
        public Session()
        {
            UiInput       = new UiInput(this);
            TargetUi      = new TargetUi(this);
            WheelUi       = new Wheel(this);
            HudUi         = new Hud(this);
            DsUtil        = new DSUtils(this);
            DsUtil2       = new DSUtils(this);
            StallReporter = new StallReporter(this);
            Av            = new RunAv(this);
            Api           = new ApiBackend(this);
            ApiServer     = new ApiServer(this);
            Projectiles   = new Projectiles.Projectiles(this);
            Proccessor    = new NetworkProccessor(this);

            VisDirToleranceCosine = Math.Cos(MathHelper.ToRadians(VisDirToleranceAngle));
            AimDirToleranceCosine = Math.Cos(MathHelper.ToRadians(AimDirToleranceAngle));
            HeatEmissives         = CreateHeatEmissive();

            LoadVanillaData();

            CoreWorkOpt.TaskType       = CastProhibit(CoreWorkOpt.TaskType, 5);
            CoreWorkOpt.MaximumThreads = 1;

            foreach (var suit in (PacketType[])Enum.GetValues(typeof(PacketType)))
            {
                PacketPools.Add(suit, new MyConcurrentPool <Packet>(128, packet => packet.CleanUp()));
            }
        }
Ejemplo n.º 2
0
        public static void Main(string[] args)
        {
            Console.Title = $"{Name} - Build: {Version}";

            var config       = new LoggingConfiguration();
            var developerLog = new ColoredConsoleTarget()
            {
                Name   = "developer",
                Layout = @"[${date:format=HH\:mm\:ss}] [${level}] ${message} ${exception}"
            };
            var developerFile = new FileTarget()
            {
                Name     = "developer-file",
                FileName = "../../../logs/server/Build ${assembly-version}/${level}/${date:format=dd-MM-yyyy}.txt",
                Layout   = @"[${date:format=HH\:mm\:ss}] [${level}] ${message} ${exception}"
            };

            config.AddTarget(developerLog);
            config.AddTarget(developerFile);
            config.AddRule(LogLevel.Info, LogLevel.Fatal, developerFile);
            config.AddRuleForAllLevels(developerLog);

            LogManager.Configuration = config;

            RollbarLocator.RollbarInstance.Configure(new RollbarConfig(RollbarId));

            Info("Game Server is loading...");

            XmlLibrary.Init();

            Database = new Database();
            LoEUtils = new Util((message) => Warn(message));

            try
            {
                Map.BinaryMapsCache = new Dictionary <string, KeyValuePair <bool, byte[]> >();
                Map.LoadEmbeddedMaps();

                var manager    = new WorldManager();
                var connection = new NetworkListener(manager);
                NetworkProccessor.Start();

                connection.Listen();

                manager.BeginUpdate();

                Info("Game Server is loading... OK!");

                while (Console.ReadKey(true).Key != ConsoleKey.Escape)
                {
                    ;
                }

                Database.Dispose();

                Info("Game Server has been stopped.");

                Environment.Exit(0);
            }
            catch (Exception e)
            {
                Database.Dispose();

                Warn($"An error occurred! {e.ToString()}");

                Error(e);

                Thread.Sleep(100);

                Warn("Press 'ESC' to close...");

                while (Console.ReadKey(true).Key != ConsoleKey.Escape)
                {
                    ;
                }

                Environment.Exit(-1);
            }
        }