Janilabo

Janilabo | Bitmap Clicker [SCAR Divi]

May 8th, 2013
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 4.35 KB | None | 0 0
  1. type
  2.   TBitmapClickObject = record
  3.     bitmap: TSCARBitmap;
  4.     scanArea: TBox;      
  5.     clickOffset, clickOffsetRnd: TPoint;
  6.     button: TMouseButton;
  7.     delay, delayRnd, sleep, sleepRnd, tolerance: Integer;
  8.   end;
  9.  
  10. var
  11.   BitmapClickObjects: array of TBitmapClickObject;
  12.  
  13. procedure AddBitmapClickObject(scanArea: TBox; clickOffset, clickOffsetRnd: TPoint; button: TMouseButton; delay, delayRnd, sleep, sleepRnd, tolerance, transpColor: Integer; bitmapData: string);
  14. var
  15.   l: Integer;
  16. begin
  17.   l := Length(BitmapClickObjects);
  18.   SetLength(BitmapClickObjects, (l + 1));
  19.   BitmapClickObjects[l].scanArea := scanArea;
  20.   BitmapClickObjects[l].clickOffset := clickOffset;
  21.   BitmapClickObjects[l].clickOffsetRnd := clickOffset;
  22.   BitmapClickObjects[l].button := button;
  23.   BitmapClickObjects[l].delay := delay;
  24.   BitmapClickObjects[l].delayRnd := delayRnd;
  25.   BitmapClickObjects[l].sleep := sleep;
  26.   BitmapClickObjects[l].sleepRnd := sleepRnd;
  27.   BitmapClickObjects[l].bitmap := TSCARBitmap.Create(bitmapData);
  28.   if (transpColor > -1) then
  29.     BitmapClickObjects[l].bitmap.TranspColor := transpColor;
  30. end;
  31.  
  32. {==============================================================================]  
  33.   Description: Simple Wait() command with hotkey check (CTRL + ALT + S).          
  34. [==============================================================================}
  35. procedure Wait2(MS: Integer);
  36. var
  37.   t: Integer;  
  38.   k: Byte;
  39. begin
  40.   t := GetSystemTime;
  41.   k := CharToVKey('s');  
  42.   repeat
  43.     try
  44.       if (GetCurrentKeyState(VK_CONTROL) and GetCurrentKeyState(VK_MENU) and GetCurrentKeyState(k)) then
  45.         TerminateScript;
  46.     except
  47.     end;
  48.     Wait(0);
  49.   until ((GetSystemTime - t) > MS);
  50. end;
  51.  
  52. procedure Click;
  53. var
  54.   i, x, y: Integer;
  55.   c: TPoint;
  56. begin
  57.   for i := 0 to (Length(BitmapClickObjects) - 1) do
  58.     if FindBitmapTol(x, y, BitmapClickObjects[i].bitmap, BitmapClickObjects[i].scanArea.X1, BitmapClickObjects[i].scanArea.Y1, BitmapClickObjects[i].scanArea.X2, BitmapClickObjects[i].scanArea.Y2, BitmapClickObjects[i].tolerance) then
  59.     begin
  60.       c := Point((x + BitmapClickObjects[i].clickOffset.X + Random(BitmapClickObjects[i].clickOffsetRnd.X)), (y + BitmapClickObjects[i].clickOffset.Y + Random(BitmapClickObjects[i].clickOffsetRnd.Y)));                      
  61.       Wait2(BitmapClickObjects[i].delay + Random(BitmapClickObjects[i].delayRnd));
  62.       SetMousePos(c.X, c.Y);
  63.       MouseBtnDown(c.X, c.Y, BitmapClickObjects[i].button);
  64.       Wait2(45 + Random(45));
  65.       MouseBtnUp(c.X, c.Y, BitmapClickObjects[i].button);
  66.       Wait(BitmapClickObjects[i].sleep + Random(BitmapClickObjects[i].sleepRnd));
  67.     end;
  68. end;
  69.  
  70. procedure Setup;
  71. var
  72.   dataStr: string;
  73. begin
  74.   {
  75.   dataStr := 'deNpjZmBmeCujorTR5/9JPnuPM//r1evr6w8fPsyw6MVizyUAudoOAQ==';
  76.                     //  SCAN AREA AS TBOX     CLICK OFFSET & RANDOMNESS     BUTTON     DELAY BEFORE CLICK & RANDOMNESS      SLEEP AFTER CLICK & RANDOMNESS      TOLERANCE      TRANSPARENT COLOR     THIS IS THE BITMAP DATA STRING, THAT IS USED FOR CREATING NEW BITMAP TO OUR OBJECTS TO BE SCANNED!
  77.   AddBitmapClickObject(Box(34, 17, 108, 76),   Point(1, 1), Point(0, 0),    mbLeft,                 0, 0,                                 0, 0,                     0,                -1,            dataStr);
  78.   }
  79.   dataStr := 'deNrdj70OAVEQhbf0k3gIb6K1LaVCrd03UNCS' +
  80.     'KJQKIauSSBSqjYpERCkUQssj2DicZDKZu2G1OznF3O+eM3Nv2St5jVUxYxrvWk' +
  81.     '+nAP+dg9T+Erm8FhagQdSEgT21Ps4NSSNEEHR5dZiH2os6DOxFIOAGfhciy8PI' +
  82.     '5ZVODgomPgzsqXDTE8JeSkdYMBBKz8j1ftIzdURKPCYLs4b6hYTa5m5xiesk1D' +
  83.     '81t3hbYjBxi/taKRw5KnGLLEq/Bdx86udf+DD7ne5bwdSP45g9dXucSWbbvlzF' +
  84.     'n4KZPa4ka6BOieg0JbdCuFoPZ5HoLZIyizKgF0tTn4Y=';
  85.   AddBitmapClickObject(Box(0, 0, 500, 500),   Point(17, 7), Point(0, 0), mbLeft, 0, 0, 150, 250, 0, -1, dataStr); // BACK
  86.   dataStr := 'deNpTZhBgiN3NPcxQyCouIJp6MPEvBoBIUQt' +
  87.     '5zeQEouYtoUCTIWwIgtiFLIKMMNUTRI7tHEBUstwbqBHCxiVCvCweRNAieHiic' +
  88.     'YHKICqRAVzXoze3CbofzdhVJycia0RWD2FDFGA6DyKOZhEyAJqJy2twXyArAJJ' +
  89.     'ohmMNXlwuxOoGrBZhBheQAXctCHWAUMkK73///kHYQLT61CQgFyiIKYWpHlMBh' +
  90.     'As3AZdGuGK4CJABtBpZGYSByyVA7uO3dzCdh8vZaHZBANyREC7QAZh6IQECcRt' +
  91.     'NEVZn0wLhCjeq+4U+3sGFAJC/2G8=';
  92.   AddBitmapClickObject(Box(0, 0, 500, 500),   Point(17, 8), Point(0, 0), mbLeft, 0, 0, 150, 250, 0, -1, dataStr); // RETRY
  93. end;
  94.  
  95. begin
  96.   Setup;
  97.   repeat
  98.     Click;
  99.     Wait2(0);
  100.   until False;
  101. end.
Advertisement
Add Comment
Please, Sign In to add comment