Добрый день.
Разработал небольшую программу - NoRecoil для любого шутера.
Работает по принципу - отслеживаем нажатие мыши - перемещаем мышь вниз. Для пистолетов и автоматов нужны разные настройки. Переключение режимов через F-кнопки, которые задаются в программе.
В данном случае программа настроена для CS 1.6.
Подойдёт для изучения новичкам.
Код:
using System;
using System.IO;
using System.Threading;
using System.Windows;
using System.Runtime;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Windows.Forms;
using System.Globalization;
using System.Drawing;
namespace CSharp_Console_3
{
class Program
{
[DllImport("User32.dll")]
private static extern short GetAsyncKeyState(System.Windows.Forms.Keys vKey);
static bool multiplyClicks = false;
static DateTime previosClickTime;
static bool rifleNoRecoil = false;
static bool pistolNoRecoil = false;
static void Main(string[] args)
{
previosClickTime = DateTime.Now;
MethodInvoker mi = new MethodInvoker(WaitKey);
mi.BeginInvoke(null, null);
Console.ReadLine();
}
private static void WaitKey()
{
while (true)
{
int resF3 = Convert.ToInt32(GetAsyncKeyState(Keys.F3).ToString());
if(resF3 != 0) // Activate/Disactive RifleNoRecoil
{
rifleNoRecoil = !rifleNoRecoil;
pistolNoRecoil = false;
Console.Beep();
}
int resF4 = Convert.ToInt32(GetAsyncKeyState(Keys.F4).ToString());
if (resF4 != 0) // Activate/Disactive PistolNoRecoil
{
rifleNoRecoil = false;
pistolNoRecoil = !pistolNoRecoil;
Console.Beep();
}
if(rifleNoRecoil) // RifleNoRecoilController
{
int res1 = Convert.ToInt32(GetAsyncKeyState(Keys.LButton).ToString());
if (res1 != 0)
{
if (DateTime.Now - previosClickTime < TimeSpan.FromMilliseconds(300))
multiplyClicks = true;
else
multiplyClicks = false;
if (!multiplyClicks)
Cursor.Position = new Point(Cursor.Position.X, Cursor.Position.Y + 12);
else
Cursor.Position = new Point(Cursor.Position.X, Cursor.Position.Y + 9);
}
Thread.Sleep(130);
}
else if(pistolNoRecoil) // PistolNoRecoilController
{
int res1 = Convert.ToInt32(GetAsyncKeyState(Keys.LButton).ToString());
if (res1 != 0)
{
if (DateTime.Now - previosClickTime < TimeSpan.FromMilliseconds(300))
multiplyClicks = true;
else
multiplyClicks = false;
if (!multiplyClicks)
Cursor.Position = new Point(Cursor.Position.X, Cursor.Position.Y + 5);
else
Cursor.Position = new Point(Cursor.Position.X, Cursor.Position.Y + 8);
}
Thread.Sleep(130);
}
}
}
}
}
________________
[Ссылки могут видеть только зарегистрированные пользователи. ] - материалы по программированию, информационной безопасности, взлому и защите игр