AyrA icon

frmmain.cs | DesertBusHelper

AyrA | PRO | 01/18/16 03:04:17 PM UTC | 0 ⭐ | 5155 👁️ | Never ⏰ | []
C# |

3.63 KB

|

None

|

0 👍

/

0 👎

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();
        }
    }
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎