Google Chromeでドラゴンボットを作成する

こんにちは、さっきのことではありませんが、Google Chromeブラウザのミニゲームで記録を更新したいと思いました。 誰も知らない場合、インターネットアクセスがない場合、上記のブラウザーを使用すると、ミニゲームが表示され、スペースバーを押すだけで起動します。携帯電話の場合は画面をタップします。



画像






それの作成を始めましょう。 ボットの原理は、サイクル内のキャラクターから特定の距離にあるピクセルの色を解析し、ピクセルの色がサボテンの色と等しいかどうかを確認し、それ以外の場合は何もしないことです。



画像






正しいピクセルを見つけることから始めましょう。 私の場合、このピクセルは座標「775x250」にあります。 必要なピクセル1を、道路上で最も高い結節よりも高く、試行錯誤によって推測されたキャラクターから離れた場所で撮影します。 また、画面解像度が1920x1080 21.5であることにも注意する必要があります。また、何か他のものがある場合は、おそらくうまく動作しません。

VSでコンソールアプリケーションを作成しましょう。



最初に、ピクセル座標の変数を宣言します。



public static int x = 775; public static int y = 250;
      
      





次に、DLLを接続して動作させます。



  [DllImport("user32.dll")] public static extern IntPtr GetDC(IntPtr hwnd); [DllImport("user32.dll")] public static extern int ReleaseDC(IntPtr hwnd, IntPtr hDC); [DllImport("gdi32.dll")] public static extern uint GetPixel(IntPtr hDC, int x, int y);
      
      





さらに簡単です。ハンドラー自体のコードを追加します



 IntPtr hDC = GetDC(IntPtr.Zero); while (true) { uint pixel = GetPixel(hDC, x, y); if (pixel == 5460819) { SendKeys.SendWait("{UP}"); } }
      
      





コードは無限ループになります。



 if (pixel == 5460819)
      
      





この行は、ピクセルの色がDecimalエンコーディングのサボテンの色と等しい場合、上矢印が押されることを意味します。



 SendKeys.SendWait("{UP}");
      
      





また、2つのリンクを接続する必要があります。



 using System.Diagnostics; using System.Windows.Forms;
      
      





現時点では、ドラゴンは500メートルのゲームメーターを簡単に克服し、鳥と夜の形の予期せぬ事態が彼を待っています。 これらの問題を解決するために、次の記事を書きます。 頑張って



完全なコード
 using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using System.Diagnostics; using System.Windows.Forms; namespace DragonChrome { class Program { #region VAR public static int x = 775; public static int y = 250; #endregion #region DLL [DllImport("user32.dll")] public static extern IntPtr GetDC(IntPtr hwnd); [DllImport("user32.dll")] public static extern int ReleaseDC(IntPtr hwnd, IntPtr hDC); [DllImport("gdi32.dll")] public static extern uint GetPixel(IntPtr hDC, int x, int y); #endregion static void Main(string[] args) { IntPtr hDC = GetDC(IntPtr.Zero); while (true) { uint pixel = GetPixel(hDC, Convert.ToInt32(x), y); if (pixel == 5460819) { SendKeys.SendWait("{UP}"); } } } } }
      
      








All Articles