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 bool HandCarFixed() { string path = "Check//"; bool x = true; Rectangle[] bounds = new Rectangle[] { PointsAndRectangles.HandSlot1, PointsAndRectangles.HandSlot2, PointsAndRectangles.HandSlot3, PointsAndRectangles.HandSlot4, PointsAndRectangles.HandSlot5 }; string[] n = new string[] { "finger1", "finger2", "finger3", "finger4", "finger5" }; for (int i = 0; i < 5; i++) { MasterOfPictures.MakePicture(bounds[i], path + n[i] + "0"); } Thread.Sleep(2000); for (int j = 0; j < 5; j++) { MasterOfPictures.MakePicture(bounds[j], path + n[j] + "1"); } for (int k = 0; k < 5; k++) { if (!MasterOfPictures.Verify(path + n[k] + "0", path + n[k] + "1")) { NotePad.DoLog("Тачка на " + (k + 1) + " месте неисправна"); x = false; break; } } return(x); }
public static int[] LowestClassCars() { int[] classes = { 0, 0, 0, 0, 0 }; //f f f f f for (int i = 0; i < lowestRqCars.Length; i++) { if (lowestRqCars[i] > 19) { classes[i] = 1; //e } if (lowestRqCars[i] > 29) { classes[i] = 2; //d } if (lowestRqCars[i] > 39) { classes[i] = 3; //c } if (lowestRqCars[i] > 49) { classes[i] = 4; //b } if (lowestRqCars[i] > 64) { classes[i] = 5; //a } if (lowestRqCars[i] > 79) { classes[i] = 6; //s } } NotePad.DoLog("Стартовые классы для условия " + classes[0] + " " + classes[1] + " " + classes[2] + " " + classes[3] + " " + classes[4]); return(classes); }
public static int AvailableCars(int carClass) { int number = 0; int[] overNumber = { slikTyres[carClass], dynamicTyres[carClass], standartTyres[carClass], allseasonTyres[carClass], offroadTyres[carClass] }; for (int i = 0; i < 5; i++) { if (tires[i]) { number += overNumber[i]; } } if (number > 4) { if (number % 2 == 0) { number -= 2; NotePad.DoLog("недостигаемы 2 машины"); } else { number -= 1; NotePad.DoLog("недостигаема 1 машина"); } } //исключаем сломаные места return(number); } //доступные машины
public void UpgradeAdsKiller()//switch off ads watching { NotePad.DoLog("Пропускаю рекламу на прокачку"); Rat.Clk(PointsAndRectangles.upgradeCancelation); //отменить просмотр Thread.Sleep(3000); UniversalErrorDefense(); }
public string[] IdentifyTracks(int[] a1) { string[] tracks = new string[5]; for (int i = 0; i < 5; i++) { string name = "unknown"; int length = NotePad.GetInfoFileLength(trackDirectory + (i + 1) + "\\info.txt"); string[,] theTable = NotePad.ReadInfoFromTXT(trackDirectory + (i + 1) + "\\info.txt"); for (int l = 0; l < length; l++) { if (a1[i] == Convert.ToInt32(theTable[l, 0])) { name = theTable[l, 1]; tracks[i] = name; break; } } if (name == "unknown") { NotePad.DoErrorLog("Неизвестная трасса позиция " + (i + 1)); tracks[i] = "Неизвестная трасса"; } } return(tracks); }
static void cashSR() { if (File.Exists(cashCarsPath)) { using (StreamReader sr = new StreamReader(cashCarsPath, System.Text.Encoding.Default)) { string line; while ((line = sr.ReadLine()) != null && line != " " && line != "") { string carname = NotePad.GetWordFromString(line, 2); int amount = Convert.ToInt32(NotePad.GetWordFromString(line, 1)); foreach (CarForExcel car in fulltablearray) { if (car.fullname() == carname) { fulltablearray.Find(thecar => thecar.fullname() == carname).amount = amount; break; } } } sr.Close(); } } }
public Car(int carPicture) { IdentifyCar(carPicture); foreach (CarForExcel car in CarsDB.fulltablearray) { if (car.fullname() == carname) { NotePad.DoLog(carname); clearance = clearanceConverter(car.clearance); tires = tiresConverter(car.tires); drive = driveConverter(car.drive); try { acceleration = Convert.ToDouble(car.acceleration); } catch { NotePad.DoErrorLog("can not convert " + car.acceleration + " to double"); } maxSpeed = Convert.ToInt32(car.speed); grip = Convert.ToInt32(car.grip); weight = Convert.ToInt32(car.weight); 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); }
public void ToClubMap() { NotePad.ClearLog(); Process.Start(@"C:\Program Files (x86)\Nox\bin\Nox.exe", "-clone:Nox_1"); Thread.Sleep(10000); se.ToClubs(); }
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 string[] IdentifyWeather(int[] c1) { string[] weathers = new string[5]; for (int i = 0; i < 5; i++) { string name = "unknown"; int length = NotePad.GetInfoFileLength(weatherDirectory + (i + 1) + "\\info.txt"); string[,] theTable = NotePad.ReadInfoFromTXT(weatherDirectory + (i + 1) + "\\info.txt"); for (int l = 0; l < length; l++) { if (c1[i] == Convert.ToInt32(theTable[l, 0])) { name = theTable[l, 1]; weathers[i] = name; break; } } if (name == "unknown") { NotePad.DoErrorLog("Неизвестная погода позиция " + (i + 1)); weathers[i] = "Неизвестная погода"; } } bool dry = false; bool wet = false; foreach (string x in weathers) { if (x == "Дождь") { wet = true; } if (x == "Солнечно") { dry = true; } } Condition.weather = "ясно"; if (wet) { if (dry) { Condition.weather = "с прояснением"; } else { Condition.weather = "дождь"; } } NotePad.LastWeather(Condition.weather); return(weathers); }
/* * public bool FaultNox() * { * bool x = MainFrame(PointsAndRectangles.faultNox, "FaultNox"); * return x; * }*/ public bool InCommonEvent() { bool x = MainFrameBW(PointsAndRectangles.inCommonEvent, "InCommonEvent", 10); if (x) { NotePad.DoLog("Зашел в событие"); } return(x); }
public bool RaceEnd() { bool x = MainFrameBW(PointsAndRectangles.raceEnd, "RaceEnd", 220); if (x) { NotePad.DoLog("первую трассу проехал, жму пропуск"); } return(x); }
public bool EnemyIsReady() { bool x = MainFrameBW(PointsAndRectangles.chooseanEnemy, "ChooseanEnemy", 90); if (x) { NotePad.DoLog("противник загрузился, готов фотать трассы"); } return(x); }
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 string[] IdentifyGround(int[] b1) { string[] grounds = new string[5]; for (int i = 0; i < 5; i++) { string name = "unknown"; int length = NotePad.GetInfoFileLength(groundDirectory + (i + 1) + "\\info.txt"); string[,] theTable = NotePad.ReadInfoFromTXT(groundDirectory + (i + 1) + "\\info.txt"); for (int l = 0; l < length; l++) { if (b1[i] == Convert.ToInt32(theTable[l, 0])) { name = theTable[l, 1]; grounds[i] = name; break; } } if (name == "unknown") { NotePad.DoErrorLog("Неизвестное покрытие позиция " + (i + 1)); grounds[i] = "Неизвестная покрытие"; } } bool asphalt = false; bool mud = false; foreach (string x in grounds) { if (x == "Асфальт") { asphalt = true; } else { mud = true; } } if (asphalt) { Condition.coverage = "Асфальт"; if (mud) { Condition.coverage = "Смешанное"; } } else { Condition.coverage = "Бездорожье"; } NotePad.LastCoverage(Condition.coverage); return(grounds); }
public int[] ConditionHandling() { int[] rqclass = new int[] { 19, 29, 39, 49, 64, 79, 100 }; //рк для классов Random r = new Random(); int handrq = 0; Condition.ActualRQ(); NotePad.DoLog("Искомое РК " + Condition.actualRQ); int[] finger = Condition.LowestClassCars(); for (int x = 0; x < 5; x++) { handrq += rqclass[finger[x]]; }//начальная рука int n; while (Condition.actualRQ - handrq > 0) { do { n = r.Next(0, 5); } while (finger[n] == Condition.maxclass); finger[n]++; handrq = 0; for (int x = 0; x < 5; x++) { handrq += rqclass[finger[x]]; } }//сборка руки NotePad.DoLog("требуемое рк: " + Condition.eventrq + "; рк руки: " + handrq); for (int l = 0; l < 4; l++) { for (int l1 = 0; l1 < (4 - l); l1++) { if (finger[l1] > finger[l1 + 1]) { int remember = finger[l1]; finger[l1] = finger[l1 + 1]; finger[l1 + 1] = remember; } } }//сортировка карт по возрастанию int[] classcars = { 0, 0, 0, 0, 0, 0, 0 }; for (int k = 0; k < finger.Length; k++) { classcars[finger[k]]++; } return(classcars);//порядок F,E,D,C,B,A,S }
public void MissClick() { FastCheck fc = new FastCheck(); if (fc.MissClick()) { NotePad.DoLog("Промах"); Rat.Clk(PointsAndRectangles.missClickCancelation); NotePad.DoLog("Исправился"); Thread.Sleep(1000); } }
public int[] Weathers() { Rectangle[] c = { PointsAndRectangles.Weather1, PointsAndRectangles.Weather2, PointsAndRectangles.Weather3, PointsAndRectangles.Weather4, PointsAndRectangles.Weather5 }; int n; bool flag; int[] c1 = new int[5]; for (int i = 0; i < 5; i++) { flag = true; MasterOfPictures.BW2Capture(c[i], ("Weather" + (i + 1) + "\\test")); n = 0; for (int i1 = 1; i1 < 10; i1++) { if (File.Exists(weatherDirectory + (i + 1) + "\\" + i1 + ".jpg")) { n = i1; } else { break; } } for (int i2 = 1; i2 < (n + 1); i2++) { if (MasterOfPictures.VerifyBW(("Weather" + (i + 1) + "\\" + i2), ("Weather" + (i + 1) + "\\test"), 30)) { c1[i] = i2; File.Delete(weatherDirectory + (i + 1) + "\\test.jpg"); flag = false; break; } } if (flag == true) { c1[i] = 0; NotePad.DoLog("Добавляю новую погоду"); try { File.Move(weatherDirectory + (i + 1) + "\\test.jpg", weatherDirectory + (i + 1) + "\\" + (n + 1) + ".jpg"); } catch (Exception ex) { } } } return(c1); }
public void CheckTime() { for (int i = 1; i < timings.Length; i += 2) { BreakTime bt = new BreakTime(timings[i], timings[i + 1]); if (bt.isTimeToBreak()) { NotePad.DoLog("Time is over"); SpecialEvents se = new SpecialEvents(); se.RestartBot(); } } }
public void PrepareToRace(int i) { SpecialEvents se = new SpecialEvents(); HandMaking hm = new HandMaking(); NotePad.DoLog("Rq = " + Condition.eventrq + ", условие 1: " + Condition.ConditionNumber1 + ", условие 2: " + Condition.ConditionNumber2 + " заезд: " + i); int wronghandnumber = 0;//счетчик неправильного сбора руки do { if (wronghandnumber == 3) { se.RestartBot(); } else { wronghandnumber++; if (i == 1) { se.ClearHand(); Thread.Sleep(500); NotePad.DoLog("Собираю пробную руку"); hm.MakingHand(); } if (i == 2)//пересборка по покрытию { se.ClearHand(); Thread.Sleep(500); NotePad.DoLog("Меняю руку с учетом покрытия и погоды"); hm.MakingHand(); } Thread.Sleep(5000); if (!hm.HandCarFixed() || !hm.VerifyHand()) { se.ClearHand(); Thread.Sleep(500); NotePad.DoLog("Меняю руку"); hm.MakingHand(); } } } while (!hm.VerifyHand()); }
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 string[,] TrackPackage(int[] trackName, int[] coverage, int[] weather) { string[] a2 = IdentifyTracks(trackName); string[] b2 = IdentifyGround(coverage); string[] c2 = IdentifyWeather(weather); string[,] d = new string[3, 5]; for (int i = 0; i < 5; i++) { d[0, i] = a2[i]; d[1, i] = b2[i]; d[2, i] = c2[i]; NotePad.DoLog((i + 1) + " Трэк: " + d[0, i] + " " + d[1, i] + " " + d[2, i]); } return(d); }
public int[] Tracks() { int n; bool flag; Rectangle[] a = { PointsAndRectangles.Track1, PointsAndRectangles.Track2, PointsAndRectangles.Track3, PointsAndRectangles.Track4, PointsAndRectangles.Track5 }; int[] a1 = new int[5]; for (int i = 0; i < 5; i++) { flag = true; MasterOfPictures.TrackCapture(a[i], ("Track" + (i + 1) + "\\test")); n = 0; for (int i1 = 1; i1 < 100; i1++) { if (File.Exists(trackDirectory + (i + 1) + "\\" + i1 + ".jpg")) { n = i1; } else { break; } } for (int i2 = 1; i2 < (n + 1); i2++) { if (MasterOfPictures.VerifyBW(("Track" + (i + 1) + "\\" + i2), ("Track" + (i + 1) + "\\test"), 120)) { a1[i] = i2; File.Delete(trackDirectory + (i + 1) + "\\test.jpg"); flag = false; break; } } if (flag == true) { a1[i] = 0; NotePad.DoLog("Добавляю новый трэк"); File.Move(trackDirectory + (i + 1) + "\\test.jpg", trackDirectory + (i + 1) + "\\" + (n + 1) + ".jpg"); } } return(a1); }
public int[] Grounds() { Rectangle[] b = { PointsAndRectangles.Ground1, PointsAndRectangles.Ground2, PointsAndRectangles.Ground3, PointsAndRectangles.Ground4, PointsAndRectangles.Ground5 }; int n; bool flag; int[] b1 = new int[5]; for (int i = 0; i < 5; i++) { flag = true; MasterOfPictures.BW2Capture(b[i], ("Ground" + (i + 1) + "\\test")); n = 0; for (int i1 = 1; i1 < 100; i1++) { if (File.Exists(groundDirectory + (i + 1) + "\\" + i1 + ".jpg")) { n = i1; } else { break; } } for (int i2 = 1; i2 < (n + 1); i2++) { if (MasterOfPictures.VerifyBW(("Ground" + (i + 1) + "\\" + i2), ("Ground" + (i + 1) + "\\test"), 150)) { b1[i] = i2; File.Delete(groundDirectory + (i + 1) + "\\test.jpg"); flag = false; break; } } if (flag == true) { b1[i] = 0; NotePad.DoLog("Добавляю новое покрытие"); File.Move(groundDirectory + (i + 1) + "\\test.jpg", groundDirectory + (i + 1) + "\\" + (n + 1) + ".jpg"); } } return(b1); }
bool GotRQ() { bool isRqKnown = false; Condition.eventrq = 0; MasterOfPictures.MakePicture(PointsAndRectangles.RQBounds, RQPath); for (int i = 1; i < 501; i++) { if (File.Exists(@"C:\Bot\RQ\" + i + ".jpg")) { if (MasterOfPictures.Verify(RQPath, @"RQ\" + i)) { Condition.eventrq = i; NotePad.DoLog("рк = " + Condition.eventrq); break; } } } if (Condition.eventrq == 0) { NotePad.DoLog("Unknown rq"); for (int x = 1; x < 500; x++) { if (File.Exists(@"C:\Bot\RQ\UnknownRQ" + x + ".jpg")) { if (MasterOfPictures.Verify(RQPath, (@"RQ\UnknownRQ" + x))) { break; } } else { File.Move(@"C:\Bot\" + RQPath + ".jpg", @"C:\Bot\RQ\UnknownRQ" + x + ".jpg"); break; } } } else { isRqKnown = true; } return(isRqKnown); }
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; } } } } }
public static string[,] ReadInfoFromTXT(string path) { int length = GetInfoFileLength(path); string[,] picturetoname = new string[length, 2]; using (StreamReader sr = new StreamReader(path, System.Text.Encoding.Default)) { for (int i = 0; i < length; i++) { string theline = sr.ReadLine(); picturetoname[i, 0] = NotePad.GetWordFromString(theline, 1); picturetoname[i, 1] = NotePad.GetWordFromString(theline, 2); } sr.Close(); } return(picturetoname); }
public bool VerifyHand() { FastCheck fc = new FastCheck(); bool x = true; Thread.Sleep(2000); if (fc.AnyHandSlotIsEmpty()) { x = false; } if (fc.RedReadytoRace()) { NotePad.DoLog("Рука не соответствует условию"); x = false; } return(x); }