public void UpgradeAdsKiller()//switch off ads watching
 {
     NotePad.DoLog("Пропускаю рекламу на прокачку");
     Rat.Clk(PointsAndRectangles.upgradeCancelation); //отменить просмотр
     Thread.Sleep(3000);
     UniversalErrorDefense();
 }
 public void ActivateClubBooster()
 {
     Rat.Clk(PointsAndRectangles.clubBoosterActivation);
     Thread.Sleep(2000);
     Rat.Clk(PointsAndRectangles.clubBoosterAcceptance);
     Thread.Sleep(3000);
 }
        private void UseFilter(Point cls)
        {
            FastCheck fc = new FastCheck();

            do
            {
                Rat.Clk(PointsAndRectangles.filter);
                Thread.Sleep(1000);
            } while (!fc.FilterIsOpenned());//100% FilterOpenner
            Thread.Sleep(200);
            Rat.Clk(PointsAndRectangles.clear);
            Thread.Sleep(1000);
            Rat.DragnDropSlow(PointsAndRectangles.xy1, PointsAndRectangles.xy2, 8);
            Rat.Clk(PointsAndRectangles.rarity);
            Thread.Sleep(1000);
            Rat.Clk(cls);//выбрать класс
            Thread.Sleep(500);
            Condition.ChooseTyres();
            Thread.Sleep(1000);
            do
            {
                Rat.Clk(PointsAndRectangles.accept);
                Thread.Sleep(500);
            } while (fc.FilterIsOpenned());//100% FilterCloser
            Thread.Sleep(2000);
        }
Ejemplo n.º 4
0
        public void ChooseNormalEvent()
        {
            SpecialEvents se = new SpecialEvents();

            NotePad.DoLog("Проверяю событие");
            bool eventIsOK = false;

            while (!eventIsOK)
            {
                for (int i = 1; i < 5; i++)
                {
                    do
                    {
                        se.MissClick();
                        se.ToClubs();
                    } while (!fc.ClubMap());

                    Thread.Sleep(500);
                    NotePad.DoLog("Проверяю условие " + i);
                    eventIsOK = Selection(i);

                    if (!eventIsOK)
                    {
                        Rat.Clk(PointsAndRectangles.toeventlist);//Back
                        Thread.Sleep(3000);
                    }
                    else
                    {
                        break;
                    }
                }
            }
        }
        public void EndRace()
        {
            FastCheck fc       = new FastCheck();
            int       flag1    = 0;
            int       flag2    = 0;
            int       flag3    = 0;
            bool      nextstep = false;

            do
            {
                if (flag1 > 3 || flag2 > 3 || flag3 > 3)
                {
                    NotePad.DoErrorLog("образовалась петля");
                    RestartBot();
                }
                if (fc.RaceEnd())
                {
                    Rat.Clk(PointsAndRectangles.endOfTheFirstRace); //кнопка "пропустить"
                    flag1++;
                }
                if (fc.AcceptThrow())
                {
                    Rat.Clk(PointsAndRectangles.acceptanceToThrowRaces);//подтвержение "пропуска"
                    flag2++;
                }
                if (fc.WonSet())
                {
                    Rat.Clk(PointsAndRectangles.endOfRaceSet);//звезды
                    flag3++;
                }
                if (fc.LostSet())
                {
                    Rat.Clk(PointsAndRectangles.endOfRaceSet);//звезды
                    flag3++;
                }
                if (fc.DrawSet())
                {
                    Rat.Clk(PointsAndRectangles.endOfRaceSet);//звезды
                    flag3++;
                }
                Thread.Sleep(1500);
                if (fc.Bounty())
                {
                    nextstep = true;
                }
                if (fc.ClubMap())
                {
                    nextstep = true;
                }
                if (fc.Ending())
                {
                    nextstep = true;
                }
                if (fc.Upgrade())
                {
                    nextstep = true;
                }
            } while (!nextstep);
        }
        private void Randomizer()
        {
            FastCheck fc = new FastCheck();

            Point[] a    = new Point[] { PointsAndRectangles.r1, PointsAndRectangles.r2, PointsAndRectangles.r3, PointsAndRectangles.r4, PointsAndRectangles.r5, PointsAndRectangles.r6, PointsAndRectangles.r7, PointsAndRectangles.r8, PointsAndRectangles.r9, PointsAndRectangles.r10 };
            Random  rand = new Random();

            while (!fc.ItsGarage())
            {
                Thread.Sleep(2000);
            }

            if ((Condition.ConditionNumber1 == "экстремальная" && Condition.eventrq < 320) ||//условие определееной редкости
                (Condition.ConditionNumber1 == "редкостная" && Condition.eventrq < 195) ||
                (Condition.ConditionNumber1 == "необычная" && Condition.eventrq < 145) ||
                (Condition.ConditionNumber1 == "суперская" && Condition.eventrq < 245) ||
                Condition.eventrq < 95)
            {
                NotePad.DoLog("сортирую по рк");
                Thread.Sleep(200);
                do
                {
                    Rat.Clk(PointsAndRectangles.sorting); //сортировка
                    Thread.Sleep(1000);
                } while (!fc.TypeIsOpenned());            //100% SorterOpenner
                Thread.Sleep(200);
                Rat.Clk(PointsAndRectangles.clearall);    //сброс
                Thread.Sleep(1000);
                Rat.Clk(PointsAndRectangles.sorting);     //сортировка
                Thread.Sleep(1000);
                Rat.Clk(PointsAndRectangles.r2);          //сортировка по рк
            }
            else
            {
                Thread.Sleep(200);
                do
                {
                    Rat.Clk(PointsAndRectangles.sorting); //сортировка
                    Thread.Sleep(1000);
                } while (!fc.TypeIsOpenned());            //100% SorterOpenner
                Thread.Sleep(200);
                int r = rand.Next(10);
                if (rand.Next(2) == 1)
                {
                    Rat.Clk(a[r]);//выбрать условие
                    Thread.Sleep(200);
                }
                Rat.Clk(a[r]);//выбрать условие
            }

            Thread.Sleep(500);
            do
            {
                Rat.Clk(PointsAndRectangles.closesorting); //закрыть сортировку
                Thread.Sleep(500);
            } while (fc.TypeIsOpenned());                  //100% SorterCloser
            Thread.Sleep(4000);
        }
 public void RestartBot()
 {
     Rat.Clk(PointsAndRectangles.noxClosing);           //close Nox
     Thread.Sleep(1000);
     Rat.Clk(PointsAndRectangles.noxClosingAcceptance); //accept Nox close
     Thread.Sleep(1000);
     Process.Start(@"C:\Bot\BotRestarter\BotRestarter\bin\Debug\BotRestarter.exe");
     Process.GetCurrentProcess().Kill();
 }
Ejemplo n.º 8
0
        public bool Selection(int eventN)
        {
            SpecialEvents se = new SpecialEvents();

            Point[] events = { PointsAndRectangles.eventN1, PointsAndRectangles.eventN2, PointsAndRectangles.eventN3, PointsAndRectangles.eventN4 };

            bool eventIsOK = false;

            bool flag;

            do
            {
                flag = true;
                NotePad.DoLog("Кликаю событие " + eventN);
                Rat.Clk(events[eventN - 1]);
                Thread.Sleep(4000);
                if (fc.EventPage())
                {
                    NotePad.DoLog("Вылетел из клубов");
                    Rat.Clk(PointsAndRectangles.clktoClubs);//Clubs
                    flag = false;
                    Thread.Sleep(15000);
                }
                se.UniversalErrorDefense();
                Thread.Sleep(2000);
            } while (flag == false);//клик эвента и обработка ошибок

            MasterOfPictures.MakePicture(PointsAndRectangles.Condition1Bounds, @"Condition1\test");
            MasterOfPictures.MakePicture(PointsAndRectangles.Condition2Bounds, @"Condition2\test");
            string cond1 = ConvertPictureToCond(DefineFirstEvevntConditionByPicture(), 1);
            string cond2 = ConvertPictureToCond(DefineSecondEvevntConditionByPicture(), 2);

            if (cond1 != "unknown" && cond2 != "unknown")//Исключаю неизвестный
            {
                eventIsOK = true;
                Condition.MakeCondition(cond1, cond2);
                if (GotRQ() && Condition.minrq != 0)
                {
                    NotePad.DoLog("Минимальное рк для события " + Condition.minrq);
                    NotePad.DoLog("Требуемое рк для события " + Condition.eventrq);
                    if (Condition.minrq > Condition.eventrq || Condition.minrq > accountLVL)
                    {
                        NotePad.DoLog("Минимальное рк для события больше требуемого");
                        eventIsOK = false;
                    }
                }
            }
            if (!eventIsOK && eventN == 4)
            {
                Rat.Clk(PointsAndRectangles.clkoutofClubs);
            }

            return(eventIsOK);
        }
        public void MissClick()
        {
            FastCheck fc = new FastCheck();

            if (fc.MissClick())
            {
                NotePad.DoLog("Промах");
                Rat.Clk(PointsAndRectangles.missClickCancelation);
                NotePad.DoLog("Исправился");
                Thread.Sleep(1000);
            }
        }
        public bool Bounty()
        {
            bool x = MainFrame(PointsAndRectangles.clubBounty, "ClubBounty");

            if (x)
            {
                if (NoActiveBooster())
                {
                    se.ActivateClubBooster();
                }
                Thread.Sleep(200);
                Rat.Clk(PointsAndRectangles.acceptbounty);
                x = true;
            }
            return(x);
        }//принимает награду
        public bool UnavailableEvent()
        {
            FastCheck fc = new FastCheck();
            bool      x  = true;

            if (fc.WrongParty())
            {
                NotePad.DoLog("Косячная рука");
                RestartBot();
            }

            if (fc.EventEnds())
            {
                NotePad.DoLog("эвент окончен");
                Rat.Clk(PointsAndRectangles.eventEndsAcceptance);//Accept Message
                Thread.Sleep(3000);
                x = false;
            }

            if (fc.EventIsNotAvailable())
            {
                NotePad.DoLog("эвент не доступен");
                Rat.Clk(PointsAndRectangles.eventIsNotAvailableAcceptance);//Accept Message
                Thread.Sleep(3000);
                if (fc.ItsGarage())
                {
                    RestartBot();
                }
                x = false;
            }

            if (fc.EventisFull())
            {
                NotePad.DoLog("эвент заполнен");
                Rat.Clk(PointsAndRectangles.eventIsFullAcceptance);//Accept Message

                if (fc.ItsGarage())
                {
                    Rat.Clk(PointsAndRectangles.buttonBack); //back
                    Thread.Sleep(2000);
                    Rat.Clk(PointsAndRectangles.buttonBack); //back to club map
                }
                Thread.Sleep(3000);
                x = false;
            }
            return(x);
        }
 public void InClubs()
 {
     while (true)
     {
         se.ToClubs();
         TimingUnit tu = new TimingUnit();
         tu.CheckTime();
         Thread.Sleep(2000);
         int i = 0;
         if (fc.ActiveEvent())
         {
             NotePad.DoLog("вхожу в активный эвент");
             i = 1;
             Rat.Clk(PointsAndRectangles.clubEventEnter);//ClubEventEnter
             string[] conds = NotePad.ReadConditions();
             Condition.eventrq = NotePad.ReadRQ();
             Condition.MakeCondition(conds[0], conds[1]);
             while (i < 100)
             {
                 i++;
                 if (!PlayClubs(i))
                 {
                     break;
                 }
             }
         }
         else
         {
             NotePad.DoLog("Подбираю эвент с одним условием");
             ce.ChooseNormalEvent();
             NotePad.DoLog("Вхожу в эвент " + Condition.eventrq + " рк");
             Rat.Clk(PointsAndRectangles.clubEventEnter);//ClubEventEnter
             while (i < 100)
             {
                 i++;
                 if (!PlayClubs(i))
                 {
                     break;
                 }
             }
         }
     }
 }
        static void ChooseTyresMechanic()
        {
            Rat.Clk(PointsAndRectangles.tiresMenu);

            for (int i = 0; i < tires.Length; i++)
            {
                if (tires[i])
                {
                    switch (i)
                    {
                    case 0:
                        Rat.Clk(PointsAndRectangles.slik);
                        Thread.Sleep(200);
                        break;

                    case 1:
                        Rat.Clk(PointsAndRectangles.dynamic);
                        Thread.Sleep(200);
                        break;

                    case 2:
                        Rat.Clk(PointsAndRectangles.standart);
                        Thread.Sleep(200);
                        break;

                    case 3:
                        Rat.Clk(PointsAndRectangles.allseason);
                        Thread.Sleep(200);
                        break;

                    case 4:
                        Rat.Clk(PointsAndRectangles.offroad);
                        Thread.Sleep(200);
                        break;

                    default:
                        break;
                    }
                }
            }
        }
        public void AcceptDailyBounty()
        {
            FastCheck fc = new FastCheck();
            bool      bountyisavailable = false;

            int clkcounter = 0;

            NotePad.DoLog("принимаю ежедневку");
            do
            {
                if (clkcounter > 25)
                {
                    RestartBot();
                }
                if (fc.DailyBounty())
                {
                    Rat.Clk(PointsAndRectangles.dailyBountyStart);
                    bountyisavailable = true;
                    Thread.Sleep(15000);
                }
                else
                if (fc.DailyBountyEnd())
                {
                    Rat.Clk(PointsAndRectangles.confirmdailyBountyEnd);
                    bountyisavailable = false;
                    Thread.Sleep(15000);
                }
                else if (bountyisavailable)
                {
                    Rat.Clk(PointsAndRectangles.dailyBountyThrow);
                    clkcounter++;
                }
                Thread.Sleep(15000);
            } while (bountyisavailable);
            NotePad.DoLog("принял ежедневку");
            RestartBot();
        }
        private bool PlayClubs(int i)
        {
            SpecialEvents      se   = new SpecialEvents();
            Waiting            wait = new Waiting();
            FastCheck          fc   = new FastCheck();
            PlayClubsPositions pcp  = new PlayClubsPositions();

            bool eventisactive = pcp.PathToGarage();

            if (eventisactive)
            {
                pcp.PrepareToRace(i);//набор/проверка руки
                wait.ReadytoRace();

                bool foundplace = false;
                do
                {
                    se.CarRepair();
                    se.UniversalErrorDefense();
                    se.UnavailableEvent();
                    //se.CardBug();
                    if (fc.ReadyToRace())
                    {
                        Rat.Clk(PointsAndRectangles.startTheRace);
                        Thread.Sleep(2000);
                    }
                    if (fc.EnemyIsReady())
                    {
                        eventisactive = true;
                        foundplace    = true;
                        Thread.Sleep(1000);
                    }
                    if (fc.Bounty())
                    {
                        NotePad.DoLog("эвент закончен");
                        eventisactive = false;
                        foundplace    = true;
                        Thread.Sleep(1000);
                    }
                    if (fc.ClubMap())
                    {
                        NotePad.DoLog("эвент закончен");
                        eventisactive = false;
                        foundplace    = true;
                        Thread.Sleep(1000);
                    }
                } while (!foundplace);//ожидание противника

                if (eventisactive)
                {
                    pcp.TimeToRace(); //расстановка

                    se.EndRace();     //завершение заезда

                    foundplace = false;
                    do
                    {
                        se.UniversalErrorDefense();

                        if (fc.Upgrade())
                        {
                            NotePad.DoLog("реклама на апгрейд");
                            se.UpgradeAdsKiller();
                            Thread.Sleep(1000);
                        }

                        if (fc.Ending())
                        {
                            Rat.Clk(PointsAndRectangles.passTheTableAfterRace);//Table
                            Thread.Sleep(1000);
                        }

                        if (fc.Bounty())
                        {
                            eventisactive = false;
                            foundplace    = true;
                            Thread.Sleep(1000);
                        }

                        if (fc.ControlScreen())
                        {
                            foundplace = true;
                            Thread.Sleep(1000);
                        }

                        if (fc.BugControlScreen())
                        {
                            Thread.Sleep(500);
                            NotePad.DoLog("Bug with Control Screen");
                            Rat.Clk(PointsAndRectangles.backToClubMap);//Back
                            Thread.Sleep(1000);
                        }

                        if (fc.ClubMap())
                        {
                            eventisactive = false;
                            foundplace    = true;
                            Thread.Sleep(1000);
                        }
                    } while (foundplace == false);//переход на экран контроля
                }
            }

            return(eventisactive);
        }
        public void MakingHand()
        {
            FastCheck fc = new FastCheck();

            int[] classcars = ConditionHandling();
            NotePad.DoLog("Собираю " + classcars[0] + "F, "
                          + classcars[1] + "E, "
                          + classcars[2] + "D, "
                          + classcars[3] + "C, "
                          + classcars[4] + "B, "
                          + classcars[5] + "A, "
                          + classcars[6] + "S");
            Thread.Sleep(1000);

            int emptycars; //недобор
            int conditionAvailableCars;
            int usedhandslots = 0;

            if (Condition.ConditionNumber1 != "empty" &&
                Condition.ConditionNumber1 != "обычная х3" &&
                !fc.ConditionActivated())
            {
                if (Condition.ConditionNumber2 == "empty")
                {
                    Rat.Clk(PointsAndRectangles.commonCondition);
                }
                else
                {
                    Rat.Clk(PointsAndRectangles.commonCondition);
                    Thread.Sleep(1000);
                    Rat.Clk(PointsAndRectangles.cond1);
                    Thread.Sleep(200);
                    Rat.Clk(PointsAndRectangles.cond2);
                    Thread.Sleep(200);
                    Rat.Clk(PointsAndRectangles.commonConditionCross);
                }
            } //включить фильтр условия события.

            Point[] cls = { PointsAndRectangles.f, PointsAndRectangles.e, PointsAndRectangles.d, PointsAndRectangles.c, PointsAndRectangles.b, PointsAndRectangles.a, PointsAndRectangles.s };
            for (int i = 6; i > -1; i--)
            {
                if (classcars[i] > 0)
                {
                    Randomizer();
                    UseFilter(cls[i]);
                    conditionAvailableCars = Condition.AvailableCars(i);

                    if (i == 0)//для серых нет возврата недобора
                    {
                        DragnDpopHand(classcars[i], usedhandslots, conditionAvailableCars);
                    }
                    else
                    {
                        emptycars         = 0;
                        emptycars        += DragnDpopHand(classcars[i], usedhandslots, conditionAvailableCars);
                        usedhandslots    += classcars[i] - emptycars;
                        classcars[i - 1] += emptycars;
                    }
                }
            }//механизм расстановки

            if (VerifyHand())
            {
                int[] carsid = RememberHand();
                NotePad.Saves(carsid);
            } //сохранение руки
        }
Ejemplo n.º 17
0
        public bool PathToGarage()
        {
            FastCheck fc           = new FastCheck();
            bool      positionflag = false;
            bool      continuegame = false;

            do
            {
                if (fc.Bounty())
                {
                    NotePad.DoLog("получил награду");
                    positionflag = true;
                }

                if (fc.SeasonIsEnded())
                {
                    Thread.Sleep(500);
                    Rat.Clk(PointsAndRectangles.acceptSeasonEnd);
                    NotePad.DoLog("сезон окончен");
                }

                if (fc.SeasonEndsBounty())
                {
                    Thread.Sleep(500);
                    Rat.Clk(PointsAndRectangles.bountyForSeason);
                    NotePad.DoLog("получил награду за сезон");
                }

                if (fc.ClubMap())
                {
                    Thread.Sleep(2000);

                    if (fc.ClubMap())
                    {
                        NotePad.DoLog("выкинуло на карту");
                        positionflag = true;
                    }
                }

                if (fc.EventEnds())
                {
                    NotePad.DoLog("эвент окончен");
                    Rat.Clk(PointsAndRectangles.eventIsEnd);//Accept Message
                    Thread.Sleep(3000);
                    positionflag = true;
                }

                if (fc.CarMenu())
                {
                    Thread.Sleep(500);
                    NotePad.DoLog("Закрываю меню автомобиля");
                    Rat.Clk(PointsAndRectangles.closeCarCard);
                    Thread.Sleep(1000);
                }

                if (fc.ControlScreen())
                {
                    Thread.Sleep(500);
                    NotePad.DoLog("Перехожу в гараж");
                    Rat.Clk(PointsAndRectangles.controlScreenToGarage);//Play
                    Thread.Sleep(1000);
                }

                /*
                 * if (fc.BugControlScreen())
                 * {
                 *  Thread.Sleep(500);
                 *  NotePad.DoLog("Bug with Control Screen");
                 *  Rat.Clk(PointsAndRectangles.bugwithControlScreen);//Back
                 *  Thread.Sleep(1000);
                 * }*/

                if (fc.ItsGarage())
                {
                    positionflag = true;
                    NotePad.DoLog("Нахожусь в гараже");
                    continuegame = true;
                }
            } while (!positionflag);

            return(continuegame);
        }
        public void ToClubs()
        {
            bool      needToDragMap = false;
            FastCheck fc            = new FastCheck();
            bool      flag          = false;

            do
            {
                if (fc.NoxRestartMessage())
                {
                    Rat.Clk(PointsAndRectangles.noxRestartMessageAcceptance);
                    Thread.Sleep(1000);
                    Rat.Clk(PointsAndRectangles.edgeOfTheScreen);
                    Thread.Sleep(120000);
                    Process.Start(@"C:\Program Files (x86)\Nox\bin\Nox.exe", "-clone:Nox_1");
                }//nox restart message
                if (fc.StartIcon())//Icon
                {
                    Rat.Clk(PointsAndRectangles.clkTheIcon);
                }
                //if (fc.BrokenInterface()) Rat.Clk(PointsAndRectangles.brokenInterfaceAcceptance);//close notify
                if (fc.LostConnection())
                {
                    Rat.Clk(PointsAndRectangles.reconnectionAfterLostConnection);                     //reconnect
                }
                //if (fc.Google()) Rat.Clk(PointsAndRectangles.googleNotificationAcceptance);//google notify
                if (fc.FBcontinue())
                {
                    Rat.Clk(PointsAndRectangles.fbFucksBrain);                 //fb f***s brain
                }
                if (fc.StartButton())
                {
                    Rat.Clk(PointsAndRectangles.buttonStart);//Start game
                    Thread.Sleep(5000);
                }
                if (fc.HeadPage())
                {
                    Rat.Clk(PointsAndRectangles.toEvents);//Events
                    Thread.Sleep(2000);
                }
                if (fc.DailyBounty())
                {
                    AcceptDailyBounty();
                }
                fc.Bounty();
                if (fc.SeasonEndsBounty())
                {
                    Thread.Sleep(500);
                    Rat.Clk(PointsAndRectangles.seasonEndAcceptance);
                    NotePad.DoLog("получил награду за сезон");
                }
                CheckConnection();
                UniversalErrorDefense();
                if (fc.EventPage())
                {
                    if (fc.InCommonEvent())
                    {
                        Thread.Sleep(500);
                        Rat.Clk(PointsAndRectangles.buttonBack);//back
                    }
                    else
                    {
                        Thread.Sleep(500);
                        Rat.Clk(PointsAndRectangles.toClubs);//Clubs
                        needToDragMap = true;
                    }
                }
                if (fc.ClubMap())
                {
                    flag = true;
                }
                Thread.Sleep(1500);
            } while (!flag);

            if (needToDragMap)
            {
                DragMap();
            }
        }
Ejemplo n.º 19
0
        public void TimeToRace()
        {
            FastCheck        fc = new FastCheck();
            SpecialEvents    se = new SpecialEvents();
            TrackInfo        ti = new TrackInfo();
            GrandArrangement ga = new GrandArrangement();

            int[] a1 = ti.Tracks();   //Track info
            int[] b1 = ti.Grounds();  //Ground info
            int[] c1 = ti.Weathers(); //Weather info

            bool raceIsEnd   = false;
            bool raceIsStart = false;
            int  waiter      = 0;

            do
            {
                if (waiter == 180)
                {
                    se.RestartBot();
                }
                se.UniversalErrorDefense();
                if (fc.ClubMap())
                {
                    NotePad.DoLog("вылетел из заезда");
                    raceIsEnd = true;
                }
                if (fc.Bounty())
                {
                    NotePad.DoLog("вылетел из заезда");
                    raceIsEnd = true;
                }
                if (fc.EnemyIsReady())
                {
                    Thread.Sleep(1000);
                    Rat.Clk(PointsAndRectangles.ChooseAnEnemy);//ChooseanEnemy
                    NotePad.DoLog("противник выбран");
                }
                if (fc.ArrangementWindow())
                {
                    NotePad.DoLog("загрузился экран расстановки");
                    Thread.Sleep(1000);
                    ga.Arrangement(a1, b1, c1);
                    NotePad.DoLog("расстановка выполнена");
                }
                if (fc.RaceOn() && !raceIsStart)
                {
                    raceIsStart = true;
                    NotePad.DoLog("заезд начался");
                    Thread.Sleep(2000);
                    Rat.Clk(PointsAndRectangles.forceTheRace); //ускорить заезд, клик в пусой области
                }
                if (!fc.RaceOn() && raceIsStart)
                {
                    NotePad.DoLog("заезд окончен");
                    raceIsEnd = true;
                }
                Thread.Sleep(1000);
                waiter++;
            } while (!raceIsEnd);
        }