Advertisement
AyrA

frmmain.cs | DesertBusHelper

Jan 18th, 2016
4,877
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.63 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.Runtime.InteropServices;
  9.  
  10. namespace DesertBusHelper
  11. {
  12.     public partial class frmMain : Form
  13.     {
  14.         private const int OFFSET = -10;
  15.  
  16.         private bool bigCorrect;
  17.         private IntPtr DesertBusWindow;
  18.         private int maxLeft;
  19.  
  20.         public frmMain()
  21.         {
  22.             InitializeComponent();
  23.             bigCorrect = false;
  24.             DesertBusWindow = IntPtr.Zero;
  25.             maxLeft = 0;
  26.         }
  27.  
  28.         private void tScanImage_Tick(object sender, EventArgs e)
  29.         {
  30.             API.ReleaseKey(API.VK_CODES.VK_UP);
  31.  
  32.             if (DesertBusWindow != IntPtr.Zero && ScreenCapture.ActiveWindow != DesertBusWindow)
  33.             {
  34.                 ScreenCapture.ActiveWindow = DesertBusWindow;
  35.             }
  36.  
  37.             Bitmap B = ScreenCapture.Capture(CaptureMode.Window, DesertBusWindow == IntPtr.Zero ? ScreenCapture.ActiveWindow : DesertBusWindow);
  38.  
  39.             if (B == null)
  40.             {
  41.                 DesertBusWindow = IntPtr.Zero;
  42.                 return;
  43.             }
  44.  
  45.             if (DesertBusHelper.containsDesertBus(B))
  46.             {
  47.                 if (DesertBusWindow == IntPtr.Zero)
  48.                 {
  49.                     DesertBusWindow = ScreenCapture.ActiveWindow;
  50.                 }
  51.                 //tScanImage.Stop();
  52.                 API.SendKey(API.VK_CODES.VK_UP);
  53.                 DesertBusHelper.GetDiff(B);
  54.                 tbStats.Text = string.Format("Stats:\r\nLast min: {0}\r\nLast max: {1}\r\nDifference: {2}\r\n", DesertBusHelper.lastMin, DesertBusHelper.lastMax, DesertBusHelper.lastDiff);
  55.  
  56.                 if (DesertBusHelper.lastDiff > 0 + OFFSET && bigCorrect)
  57.                 {
  58.                     bigCorrect = false;
  59.                     API.PressKey(API.VK_CODES.VK_LEFT, 500);
  60.                     tbStats.Text += string.Format("Steering left: ({0} ms)", 500);
  61.                 }
  62.                 else
  63.                 {
  64.                     if (DesertBusHelper.lastDiff > 90 + OFFSET)
  65.                     {
  66.                         maxLeft++;
  67.                         API.PressKey(API.VK_CODES.VK_LEFT, 100);
  68.                         tbStats.Text += string.Format("Steering left: ({0} ms; {1} times)", 100, maxLeft);
  69.                     }
  70.                     else if (DesertBusHelper.lastDiff > 50 + OFFSET)
  71.                     {
  72.                         if (maxLeft > 0)
  73.                         {
  74.                             maxLeft--;
  75.                         }
  76.                         else
  77.                         {
  78.                             API.PressKey(API.VK_CODES.VK_LEFT, 50);
  79.                             tbStats.Text += string.Format("Steering left: ({0} ms)", 50);
  80.                         }
  81.                     }
  82.                     else if (DesertBusHelper.lastDiff > 30 + OFFSET)
  83.                     {
  84.                         maxLeft = 0;
  85.                         API.PressKey(API.VK_CODES.VK_LEFT, 20);
  86.                         tbStats.Text += string.Format("Steering left: ({0} ms)", 20);
  87.                     }
  88.                     else if (DesertBusHelper.lastDiff < 0 + OFFSET)
  89.                     {
  90.                         bigCorrect = true;
  91.                         maxLeft = 0;
  92.                     }
  93.                 }
  94.  
  95.                 //tScanImage.Start();
  96.             }
  97.             else
  98.             {
  99.                 tbStats.Text = "Desert Bus not detected";
  100.                 DesertBusWindow = IntPtr.Zero;
  101.             }
  102.             B.Dispose();
  103.         }
  104.     }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement