Esempio n. 1
0
 public static WarcraftState InitWarcraft3Info()
 {
     if (!Warcraft3Info.HasExited)
     {
         return(WarcraftState.OK);
     }
     try
     {
         Process[] procs = Process.GetProcessesByName("Warcraft III");
         if (procs.Length == 0)
         {
             procs = Process.GetProcessesByName("war3");
             if (procs.Length == 0)
             {
                 if (Warcraft3Info.Process != null)
                 {
                     Warcraft3Info.Reset();
                 }
                 return(WarcraftState.Closed);
             }
         }
         return(InitWarcraft3Info(procs[0]));
     }
     catch (InvalidOperationException)
     {
         return(WarcraftState.Error);
     }
 }
Esempio n. 2
0
        internal static async void StatusCheck()
        {
            if (WaitGameStart)
            {
                if (!GetSelectedReceiveStatus())
                {
                    return;
                }
                WaitGameStart = false;
                AutoRG.CancelAsync();
                MainWorker.MapFileWatcher.EnableRaisingEvents = false;
                await Task.Delay(500);

                CameraInit();
                GameDelay = Settings.GameDelay;
                if (Settings.IsAutoLoad)
                {
                    await Task.Delay(3000);

                    LoadCodeSelect();
                }
            }
            else
            {
                if (!WaitLobby && CurrentMusicState == MusicState.BattleNet)
                {
                    GameDelay = 50;
                    WaitLobby = true;
                    Warcraft3Info.Refresh();
                }
                if (!WaitLobby || GameDelay != 100)
                {
                    return;
                }
                GameDelay = 550;
                if (Settings.IsCheatMapCheck && !LoadedFiles.IsLoadedMap(out _))
                {
                    MainWorker.MapFileWatcher.EnableRaisingEvents = true;
                }
                if (File.Exists($"{DocumentPath}\\Replay\\LastReplay.w3g"))
                {
                    try
                    {
                        File.Delete($"{DocumentPath}\\Replay\\CirnixReplay.w3g");
                        File.Move($"{DocumentPath}\\Replay\\LastReplay.w3g", $"{DocumentPath}\\Replay\\CirnixReplay.w3g");
                    }
                    catch
                    {
                        // Delete : CirnixReplay.w3g 경로에 대한 액세스가 거부되었습니다.
                        // 백신때문으로 유추
                    }
                }
                WaitLobby     = false;
                WaitGameStart = true;
            }
        }
Esempio n. 3
0
 public static WarcraftState InitWarcraft3Info(string name)
 {
     Process[] procs = Process.GetProcessesByName(name);
     if (procs.Length == 0)
     {
         if (Warcraft3Info.ID != 0)
         {
             Warcraft3Info.Reset();
         }
         return(WarcraftState.Closed);
     }
     return(InitWarcraft3Info(procs[0]));
 }
Esempio n. 4
0
        //internal static HangWatchdog AntiZombieProcessChecker;
        internal static async Task <bool> ProcessCheck()
        {
            if (GameModule.InitWarcraft3Info() != WarcraftState.OK ||
                !GameModule.WarcraftCheck())
            {
                InitializedWarcraft = false;
                if (AutoRG.IsRunning)
                {
                    AutoRG.CancelAsync();
                }
                AutoMouse.CheckOff();
                // 프로그램을 찾지 못할 경우 검색 간격 증가
                await Task.Delay(800);

                return(true);
            }
            else if (!InitializedWarcraft)
            {
                InitializedWarcraft = true;
                await Task.Delay(2000);

                Warcraft3Info.Refresh();
                GameModule.GetOffset();
                GameDelay       = 50;
                RefreshCooldown = 0.01f;
                //ColorfulChat = true;
                name           = string.Empty;
                StartDelay     = Settings.StartSpeed > 0 ? Settings.StartSpeed : 0.01f;
                CameraDistance = Settings.CameraDistance;
                CameraAngleX   = Settings.CameraAngleX;
                CameraAngleY   = Settings.CameraAngleY;
            }
            if (Settings.IsAutoHp && !HPView)
            {
                HPView = true;
            }

            //AntiZombieProcessChecker.Check();
            MemoryOptimizeChecker.Check();

            StatusCheck();
            return(false);
        }
Esempio n. 5
0
        internal static async void Rework(string[] args)
        {
            string LastInstallPath = Path.GetDirectoryName(Warcraft3Info.Process.MainModule.FileName);

            Settings.InstallPath = LastInstallPath;
            string[] procArgs = GetArguments(Warcraft3Info.ID);
            Warcraft3Info.Close();

            await Task.Delay(2000);

            int windowState = 1;

            if (procArgs.Length != 0)
            {
                switch (procArgs[0].ToLower())
                {
                case "-windows": windowState = 0; break;

                case "-nativefullscr": windowState = 2; break;
                }
            }
            await GameModule.StartWarcraft3(LastInstallPath, windowState);
        }
Esempio n. 6
0
 internal static void ProgramExit(string[] args)
 {
     //SendMsg(true, new string[] { "프로그램을 종료합니다." });
     Warcraft3Info.Close();
     //ProgramShutDown();
 }