void Update() { UpdateRotation(); if (lastCursorTool != currentCursorTool) { if (lastCursorTool != CursorTools.None) { Destroy(cursor.gameObject); } if (currentCursorTool != CursorTools.None) { cursor = DrawCursor(currentPrefabIndex); } lastCursorTool = currentCursorTool; } if (currentCursorTool == CursorTools.Rail) { if (lastCursorPrefabIndex != currentPrefabIndex) { Destroy(cursor.gameObject); cursor = DrawCursor(currentPrefabIndex); lastCursorPrefabIndex = currentPrefabIndex; } } }
void UpdateRotation() { if (Input.GetKey("1") && keyIsUp) { keyIsUp = false; currentCursorTool = CursorTools.None; } if (Input.GetKey("2") && keyIsUp) { keyIsUp = false; currentCursorTool = CursorTools.Rail; } if (Input.GetKey("3") && keyIsUp) { keyIsUp = false; currentCursorTool = CursorTools.Bulldozer; } if (Input.GetKey("r") && keyIsUp) { keyIsUp = false; currentPrefabIndex++; if (currentPrefabIndex > 3) { currentPrefabIndex = 0; } } if (Input.GetKey("e") && keyIsUp) { keyIsUp = false; cursorRot--; if (cursorRot < 1) { cursorRot = 6; } SetCursorPos(cursorX, cursorY); } else if (Input.GetKey("q") && keyIsUp) { keyIsUp = false; cursorRot++; if (cursorRot > 6) { cursorRot = 1; } SetCursorPos(cursorX, cursorY); } if (!Input.GetKey("e") && !Input.GetKey("q") && !Input.GetKey("r") && !Input.GetKey("1") && !Input.GetKey("2") && !Input.GetKey("3")) { keyIsUp = true; } }
public static void ReCaptchaSolveSound(this ChromiumWebBrowser ChromiumBrowser, string Response, Point CursorPos, out Point NewCursorPos) { var BHost = ChromiumBrowser.GetBrowserHost(); var Browser = ChromiumBrowser.GetBrowser(); var BFrame = Browser.ReCaptchaGetBFrame(); NewCursorPos = CursorPos; //Get Sound Reponse Textbox Position var Result = (string)BFrame.EvaluateScriptAsync(Properties.Resources.reCaptchaGetSoundResponsePosition).GetAwaiter().GetResult().Result; if (Result == null) { return; } Random Random = new Random(); int X = int.Parse(DataTools.ReadJson(Result, "x").Split('.', ',')[0]); int Y = int.Parse(DataTools.ReadJson(Result, "y").Split('.', ',')[0]); //Parse the relative position of the iframe to Window Point BFramePos = Browser.ReCaptchaGetBFramePosition(); Point RespBoxPos = new Point(X + BFramePos.X + Random.Next(5, 100), Y + BFramePos.Y + Random.Next(5, 15)); //Create Macro var Move = CursorTools.CreateMove(CursorPos, RespBoxPos, 6); //Execute Macro BHost.ExecuteMove(Move); ThreadTools.Wait(Random.Next(999, 1999), true); BHost.ExecuteClick(RespBoxPos); ThreadTools.Wait(Random.Next(511, 999), true); foreach (char Char in Response) { BHost.SendChar(Char); } //Get Verify Button Position var VerifyBntRect = Browser.ReCaptchaGetVerifyButtonRectangle(); //Parse the relative position of the iframe to Window Point VerifyBntPos = new Point(VerifyBntRect.X + BFramePos.X + Random.Next(5, 40), VerifyBntRect.Y + BFramePos.Y + Random.Next(5, 15)); //Create and Execute Macro Move = CursorTools.CreateMove(RespBoxPos, VerifyBntPos, 6); BHost.ExecuteMove(Move); ThreadTools.Wait(Random.Next(999, 1999), true); BHost.ExecuteClick(VerifyBntPos); NewCursorPos = VerifyBntPos; ThreadTools.Wait(Random.Next(3599, 4599), true); }
public static void hCaptchaClickImHuman(this IBrowser Browser, out Point Cursor) { var Rnd = new Random(); var Begin = new Point(Rnd.Next(5, 25), Rnd.Next(5, 25)); var Target = Browser.GethCaptchaImHumanButtonPosition(); var Move = CursorTools.CreateMove(Begin, Target, MouseSpeed: 10); Browser.ExecuteMove(Move); ThreadTools.Wait(Rnd.Next(100, 150), true); Browser.ExecuteClick(Target); ThreadTools.Wait(Rnd.Next(500, 650), true); Cursor = Target; }
public static bool ReCaptchaClickImNotRobot(this ChromiumWebBrowser ChromiumBrowser, out Point NewCursorPos) { var BHost = ChromiumBrowser.GetBrowserHost(); var Browser = ChromiumBrowser.GetBrowser(); Random Random = new Random(); ThreadTools.Wait(Random.Next(999, 1999), true); //Get Recaptcha Position in the page var Result = (string)Browser.MainFrame.EvaluateScriptAsync(Properties.Resources.reCaptchaIframeSearch + "\r\n" + Properties.Resources.reCaptchaGetAnchorPosition).GetAwaiter().GetResult().Result; int X = int.Parse(DataTools.ReadJson(Result, "x").Split('.', ',')[0]); int Y = int.Parse(DataTools.ReadJson(Result, "y").Split('.', ',')[0]); int Width = int.Parse(DataTools.ReadJson(Result, "width").Split('.', ',')[0]); int Height = int.Parse(DataTools.ReadJson(Result, "height").Split('.', ',')[0]); //Create Positions Point InitialPos = new Point(Random.Next(15, 20), Random.Next(25, 30)); Point CaptchaClick = new Point(X + Random.Next(15, 20), Y + Random.Next(15, 20)); var CaptchaRegion = new Rectangle(X, Y, Width, Height); Point PostClick = new Point(CaptchaRegion.Right + Random.Next(-10, 10), Y + Random.Next(-10, 10)); //Ensure the fake click don't will click in the "i'm not a robot" Point?FakeClick = null; while (FakeClick == null || CaptchaRegion.Contains(FakeClick.Value)) { FakeClick = new Point(Random.Next(10, 500), Random.Next(20, 500)); } //Create Macros var MoveA = CursorTools.CreateMove(InitialPos, FakeClick.Value); var MoveB = CursorTools.CreateMove(FakeClick.Value, CaptchaClick); var MoveC = CursorTools.CreateMove(CaptchaClick, PostClick); //Execute Macros BHost.ExecuteMove(MoveA); ThreadTools.Wait(Random.Next(999, 1999), true); BHost.ExecuteClick(FakeClick.Value); BHost.ExecuteMove(MoveB); ThreadTools.Wait(Random.Next(999, 1999), true); BHost.ExecuteClick(CaptchaClick); BHost.ExecuteMove(MoveC); NewCursorPos = PostClick; ThreadTools.Wait(Random.Next(3599, 4599), true); return(Browser.ReCaptchaIsSolved()); }
public static void ReCaptchaClickAudioChallenge(this ChromiumWebBrowser ChromiumBrowser, Point CursorPos, out Point NewCursorPos) { var BHost = ChromiumBrowser.GetBrowserHost(); var Browser = ChromiumBrowser.GetBrowser(); var BFrame = Browser.ReCaptchaGetBFrame(); NewCursorPos = CursorPos; if (Browser.ReCaptchaIsFailed()) { return; } Random Random = new Random(); //Get Audio Challenge Button Pos var Result = (string)BFrame.EvaluateScriptAsync(Properties.Resources.reCaptchaGetSpeakPosition).GetAwaiter().GetResult().Result; int X = int.Parse(DataTools.ReadJson(Result, "x").Split('.', ',')[0]); int Y = int.Parse(DataTools.ReadJson(Result, "y").Split('.', ',')[0]); int Width = int.Parse(DataTools.ReadJson(Result, "width").Split('.', ',')[0]); int Height = int.Parse(DataTools.ReadJson(Result, "height").Split('.', ',')[0]); Point AudioBntPos = new Point(X + Random.Next(5, Width - 5), Y + Random.Next(5, Height - 5)); //Parse the relative position of the iframe to Window Point BFramePos = Browser.ReCaptchaGetBFramePosition(); AudioBntPos = new Point(AudioBntPos.X + BFramePos.X, AudioBntPos.Y + BFramePos.Y); //Create and Execute the Macro var Move = CursorTools.CreateMove(CursorPos, AudioBntPos, 7); BHost.ExecuteMove(Move); ThreadTools.Wait(Random.Next(999, 1999), true); BHost.ExecuteClick(AudioBntPos); ThreadTools.Wait(Random.Next(2111, 3599), true); NewCursorPos = AudioBntPos; }
public void SetCursorType(int cursorType) { currentCursorTool = (CursorTools)cursorType; }