Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Text;
- using System.Windows.Forms;
- using System.Runtime.InteropServices;
- namespace DesertBusHelper
- {
- public partial class frmMain : Form
- {
- private const int OFFSET = -10;
- private bool bigCorrect;
- private IntPtr DesertBusWindow;
- private int maxLeft;
- public frmMain()
- {
- InitializeComponent();
- bigCorrect = false;
- DesertBusWindow = IntPtr.Zero;
- maxLeft = 0;
- }
- private void tScanImage_Tick(object sender, EventArgs e)
- {
- API.ReleaseKey(API.VK_CODES.VK_UP);
- if (DesertBusWindow != IntPtr.Zero && ScreenCapture.ActiveWindow != DesertBusWindow)
- {
- ScreenCapture.ActiveWindow = DesertBusWindow;
- }
- Bitmap B = ScreenCapture.Capture(CaptureMode.Window, DesertBusWindow == IntPtr.Zero ? ScreenCapture.ActiveWindow : DesertBusWindow);
- if (B == null)
- {
- DesertBusWindow = IntPtr.Zero;
- return;
- }
- if (DesertBusHelper.containsDesertBus(B))
- {
- if (DesertBusWindow == IntPtr.Zero)
- {
- DesertBusWindow = ScreenCapture.ActiveWindow;
- }
- //tScanImage.Stop();
- API.SendKey(API.VK_CODES.VK_UP);
- DesertBusHelper.GetDiff(B);
- tbStats.Text = string.Format("Stats:\r\nLast min: {0}\r\nLast max: {1}\r\nDifference: {2}\r\n", DesertBusHelper.lastMin, DesertBusHelper.lastMax, DesertBusHelper.lastDiff);
- if (DesertBusHelper.lastDiff > 0 + OFFSET && bigCorrect)
- {
- bigCorrect = false;
- API.PressKey(API.VK_CODES.VK_LEFT, 500);
- tbStats.Text += string.Format("Steering left: ({0} ms)", 500);
- }
- else
- {
- if (DesertBusHelper.lastDiff > 90 + OFFSET)
- {
- maxLeft++;
- API.PressKey(API.VK_CODES.VK_LEFT, 100);
- tbStats.Text += string.Format("Steering left: ({0} ms; {1} times)", 100, maxLeft);
- }
- else if (DesertBusHelper.lastDiff > 50 + OFFSET)
- {
- if (maxLeft > 0)
- {
- maxLeft--;
- }
- else
- {
- API.PressKey(API.VK_CODES.VK_LEFT, 50);
- tbStats.Text += string.Format("Steering left: ({0} ms)", 50);
- }
- }
- else if (DesertBusHelper.lastDiff > 30 + OFFSET)
- {
- maxLeft = 0;
- API.PressKey(API.VK_CODES.VK_LEFT, 20);
- tbStats.Text += string.Format("Steering left: ({0} ms)", 20);
- }
- else if (DesertBusHelper.lastDiff < 0 + OFFSET)
- {
- bigCorrect = true;
- maxLeft = 0;
- }
- }
- //tScanImage.Start();
- }
- else
- {
- tbStats.Text = "Desert Bus not detected";
- DesertBusWindow = IntPtr.Zero;
- }
- B.Dispose();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement