それの作成を始めましょう。 ボットの原理は、サイクル内のキャラクターから特定の距離にあるピクセルの色を解析し、ピクセルの色がサボテンの色と等しいかどうかを確認し、それ以外の場合は何もしないことです。
正しいピクセルを見つけることから始めましょう。 私の場合、このピクセルは座標「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}"); } } } } }