예제 #1
0
        public Loader()
        {
            // CSV Files and Logger
            this.Logger           = new Logger();
            this.DirectoryChecker = new DirectoryChecker();
            this.CsvManager       = new CSVManager();

            this.ConnectionBlocker = new ConnectionBlocker();
            if (Utils.ParseConfigBoolean("UseWebAPI"))
            {
                this.API = new API();
            }


            // Core
            this.LicenseChecker   = new LicenseChecker();
            this.ResourcesManager = new ResourcesManager();
            this.ObjectManager    = new ObjectManager();
            this.Events           = new EventsHandler();
            if (Constants.UseCacheServer)
            {
                this.Redis = new Redis();
            }


            this.CommandFactory = new CommandFactory();

            this.MessageFactory = new MessageFactory();

            // Optimazions
            this.MemThread = new MemoryThread();

            // User
            this.Parser = new ParserThread();
        }
예제 #2
0
        private static void ActivateFullMaintenance(object sender, EventArgs e)
        {
            Timer.Stop();
            Timer2.Stop();
            Timer3.Elapsed += DisableMaintenance;
            Timer3.Interval = Time;
            Timer3.Start();
            ForegroundColor = ConsoleColor.Yellow;
            Say("Full Maintenance has been started!");
            ResetColor();
            if (Time >= 7000)
            {
                Say();
                Error("Please type in a valid time!");
                Error("20min = 1200, 10min = 600");
                Say();
                StartMaintenance();
            }

            MemoryThread.Stop();
            Parallel.ForEach(ResourcesManager.GetInMemoryLevels(), p =>
            {
                new OutOfSyncMessage(p.GetClient()).Send();
                ResourcesManager.DropClient(p.GetClient().GetSocketHandle());
            });
            var clans = DatabaseManager.Single().Save(ResourcesManager.GetInMemoryAlliances());

            clans.Wait();
            MemoryThread.Start();
        }
예제 #3
0
        public Loader()
        {
            // CSV Files and Logger
            Logger           = new Logger();
            DirectoryChecker = new DirectoryChecker();
            Csv      = new CSVManager();
            Settings = new Settings.Settings();

            if (Utils.ParseConfigBoolean("UseWebAPI"))
            {
                API = new API();
            }

            //Core
            ResourcesManager = new ResourcesManager();
            ObjectManager    = new ObjectManager();
            Events           = new EventsHandler();
            if (Constants.UseCacheServer)
            {
                Redis = new Redis();
            }

            CommandFactory = new CommandFactory();
            MessageFactory = new MessageFactory();

            // Optimazions
            MemThread = new MemoryThread();

            // User
            Parser = new ParserThread();
        }
예제 #4
0
파일: UCSControl.cs 프로젝트: Dekryptor/UCS
 public static void UCSClose()
 {
     Thread T = new Thread(() =>
     {
         Say("Closing UCS...");
         NetworkThread.Stop();
         MemoryThread.Stop();
         Environment.Exit(0);
     }); T.Start();
 }
예제 #5
0
파일: UCSControl.cs 프로젝트: Dekryptor/UCS
 public static void UCSRestart()
 {
     Thread T = new Thread(() =>
     {
         Say("Restarting UCS...");
         NetworkThread.Stop();
         MemoryThread.Stop();
         Thread.Sleep(1000);
         Process.Start("UCS.exe");
         Environment.Exit(0);
     }); T.Start();
 }
예제 #6
0
 public override void Start()
 {
     _thread = new MemoryThread("Sekiro", Defs.PointerByName("GameState"), 1, EventName());
     _thread.ValueChanged += (sender, args) => {
         try {
             SetValue(args.Bytes[0]);
         } catch {
             // ignored
         }
     };
     _thread.Start();
 }
예제 #7
0
        public static void Main(string[] args)
        {
            Thread T = new Thread(() =>
            {
                UCSControl.WelcomeMessage();
                CheckThread.Start();
                MemoryThread.Start();
                NetworkThread.Start();
                ParserThread.Start();
            }); T.Start();

            T.Priority = ThreadPriority.Highest;
        }
예제 #8
0
 public override void Start()
 {
     _thread = new MemoryThread("Sekiro", Defs.PointerByName("IGT"), 4, EventName(), EMemoryThreadPriority.High);
     _thread.ValueChanged += (sender, args) => {
         try {
             var ms = BitConverter.ToInt32(args.Bytes, 0);
             var t  = TimeSpan.FromMilliseconds(ms);
             SetValue($"{t.Hours:D2}h:{t.Minutes:D2}m:{t.Seconds:D2}s:{t.Milliseconds:D3}ms");
         } catch {
             // ignored
         }
     };
     _thread.Start();
 }
예제 #9
0
 public override void Start()
 {
     _thread = new MemoryThread("Sekiro", Defs.PointerByName("PlayerPosition"), 12, EventName());
     _thread.ValueChanged += (sender, args) => {
         try {
             var posX  = BitConverter.ToSingle(args.Bytes, 0);
             var posY  = BitConverter.ToSingle(args.Bytes, 4);
             var posZ  = BitConverter.ToSingle(args.Bytes, 8);
             var vect3 = new Vector3(posX, posY, posZ);
             SetValue(new Vector3(posX, posY, posZ));
         } catch {
             // ignored
         }
     };
     _thread.Start();
 }
예제 #10
0
 public override void Start()
 {
     _thread = new MemoryThread("Sekiro", Defs.PointerByName("LastCommutedIdol"), 4, EventName());
     _thread.ValueChanged += (sender, args) => {
         try {
             var idol = Defs.IdolById(BitConverter.ToInt32(args.Bytes, 0));
             if (idol == null)
             {
                 return;
             }
             SetValue(idol);
         } catch {
             // Ignored
         }
     };
     _thread.Start();
 }
예제 #11
0
        public Loader()
        {
            // License Check
            //_LicenseChecker    = new LicenseChecker();

            // CSV Files and Logger
            _Logger = new Logger();

            _DirectoryChecker = new DirectoryChecker();

            _CSVManager = new CSVManager();


            // Network and Packets
            _ChatProcessor = new ChatProcessor();

            _ConnectionBlocker = new ConnectionBlocker();

            if (Utils.ParseConfigBoolean("UseWebAPI"))
            {
                _API = new API();
            }

            // Core
            _ResourcesManager = new ResourcesManager();

            _ObjectManager = new ObjectManager();

            _CommandFactory = new CommandFactory();

            _MessageFactory = new MessageFactory();

            // Optimazions
            _MemThread = new MemoryThread();

            // User
            _Parser = new ParserThread();

            // Creates a new Socket
            _Gateway = new Gateway();
        }
예제 #12
0
        public override void Start()
        {
            _thread = new MemoryThread("Sekiro", Defs.PointerByName("PlayerStats"), 32, EventName());
            _thread.ValueChanged += (sender, args) => {
                try {
                    var curHealth  = BitConverter.ToInt32(args.Bytes, 0);
                    var maxHealth  = BitConverter.ToInt32(args.Bytes, 4);
                    var curPosture = BitConverter.ToInt32(args.Bytes, 24);
                    var maxPosture = BitConverter.ToInt32(args.Bytes, 28);

                    SetValue(new Player()
                    {
                        CurrentHealth  = curHealth,
                        MaximumHealth  = maxHealth,
                        CurrentPosture = curPosture,
                        MaximumPosture = maxPosture
                    });
                } catch {
                    // ignored
                }
            };
            _thread.Start();
        }
예제 #13
0
 public static void Join(MemoryThread memoryThread)
 {
     _threadCount++;
     memoryThread.ThreadId = _threadCount;
     //memoryThread.Thread.Join(1000);
 }