public static void RecoilLoop() { while (true) { if (Variables.Menu.isEnabled() && !string.IsNullOrEmpty(Weapon.getName())) { while (IsKeyDown(Keys.LButton) && IsKeyDown(Keys.RButton)) { for (int i = 0; i <= Weapon.getAmmo() - 1; i++) { if (!IsKeyDown(Keys.LButton)) { break; } Smoothing(Weapon.isMuzzleBoost(Weapon.getShootingMilliSec()), Weapon.isMuzzleBoost(Weapon.getShotDelay(i)), (int)((((Weapon.getRecoilX(i) + GetRandomNumber(0.0, Weapon.getRandomness())) / 4) / Settings.getSensitivity()) * Weapon.getScopeMulitplier() * Weapon.getBarrelMultiplier()), (int)((((Weapon.getRecoilY(i) + GetRandomNumber(0.0, Weapon.getRandomness())) / 4) / Settings.getSensitivity()) * Weapon.getScopeMulitplier() * Weapon.getBarrelMultiplier())); DLLImports.mouse_event(0x0001, 0, 0, 0, 0); } } } Thread.Sleep(1); } }
static private void Smoothing(double MS, double ControlledTime, int X, int Y) { int oldX = 0, oldY = 0, oldT = 0; for (int i = 1; i <= (int)ControlledTime; ++i) { int newX = i * X / (int)ControlledTime; int newY = i * Y / (int)ControlledTime; int newTime = i * (int)ControlledTime / (int)ControlledTime; DLLImports.mouse_event(1, newX - oldX, newY - oldY, 0, 0); PerciseSleep(newTime - oldT); oldX = newX; oldY = newY; oldT = newTime; } PerciseSleep((int)MS - (int)ControlledTime); }