Janilabo

Untitled

Sep 29th, 2013
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 3.86 KB | None | 0 0
  1. program TricksterBot;
  2.  
  3. var
  4.   i, x, y, t: Integer;  
  5.   screen: TBox;
  6.   targetHpBarBmp, galderBmp: TSCARBitmap;
  7.   monsterBmps: array of TSCARBitmap;
  8.   dead: Boolean;
  9.   pt: TPoint;
  10.  
  11. procedure Load;
  12. begin
  13.   monsterBmps := [
  14.   // Golden Mole north
  15.   TSCARBitmap.Create('deNrjY+BlMLK1ACJxNQk8SFhJFIhIUolfGUQlv' +
  16.     '6wCQWWDRCWRHifGTIgyKqqEK+MUl6CKSrhfQMqElQEZTDzV'),
  17.  
  18.   // south
  19.   TSCARBitmap.Create('deNrjYmBnMJPUgiNuDgkggrB15W3QpPRNo4EIx' +
  20.     'OBQBsoiK0CThSjANBkihSkLFxfhgSI0cYiUqZKelb09ECGLw6XgsgBcHh3/'),
  21.  
  22.   // east
  23.   TSCARBitmap.Create('deNplzsEKgCAQhGEhCAOhoxIGnjxHpyh6lt7/L' +
  24.     'fpjQBaDYVnwY9zgvIs1dZnXwkxbKT47NzDb034fWqb4gWXMMuTfg2ECzuuxppX' +
  25.     'ICFhD89/UUEkzAJi9mWNkWDAq6YwYbTIA+1HHlBdJgB6/'),
  26.  
  27.   // south east
  28.   TSCARBitmap.Create('deNrjYGBlMJPUgiBNBmVuDgk4whQBIjQRI0E1I' +
  29.     'NLnUIaLQ0QgghBxuAiyYiACALVKDA0='),
  30.  
  31.   // south west
  32.   TSCARBitmap.Create('deNpjZ2Bh0GRQ1udQNpPUQkZAQQhCltKVtwEiN' +
  33.     'CmIIDICSgEA7bwL+w=='),
  34.  
  35.   // Fanta Slime north
  36.   TSCARBitmap.Create('deNoTYeBj+B+kOIpGEQL9fzeUnEq2aynRiw0BAJB7nEQ='),
  37.  
  38.   // north east
  39.   TSCARBitmap.Create('deNoTYBBm+B+kSAx6ZshxThOEiFQPQaSqH0UDhv6/G8IuJ8nxpKqn' +
  40.     'LwIACBC9SQ=='),
  41.  
  42.   // north west
  43.   TSCARBitmap.Create('deNrjYuBisFDhAyJNHi5xNQlkxCkOQgRlgVL8s' +
  44.     'gpABJcCsjFlkRGNZCFSmLJwcQgyFOYCKsCqES6LSwEAw0YdQA=='),
  45.  
  46.   // south east
  47.   TSCARBitmap.Create('deNoTYBBk+B+kiIL+v0PhZjshEJpKXMrwa8GlElM90CVARDv1+FVm' +
  48.     'Oz0z5GBgYCBePUgxcugRoR7ZfIh1QABkEOMeqPb/70AkEV5mQALEqCfoHmKjGBwpW62sii' +
  49.     'UVUcITTT04+uDKsCqGioBNg7gNqOx7zxwIArIxDcdUBlGJ3SXYNKIZCwDOTIbM'),
  50.  
  51.   // south west
  52.   TSCARBitmap.Create('deNrjYWBjcGFXdmBXthTUshTQ8jIxdbW3cbW10' +
  53.     'ePTMtOwASIjICmpFcKrHCitFWttGqKt5yGn5yCj56qmZ8inZaVlYyWpBURANdl' +
  54.     'iyqlKWrmOpqm2prFuNoFONkAzHWW17KRBCKKsy8amVUerw8e00s0008fGU1wrU' +
  55.     'EnLTQ5F2Sx3mymayr2GWqVqWgkKWolqWqEqWp5yWm5gNVZgNauCbOaYKk91sqk' +
  56.     'yt6nS10rTQFUDtgsAHn4u8Q=='),
  57.  
  58.   // left
  59.   TSCARBitmap.Create('deNrjYmBnkNIwhSMRJXQkpaSMRwFIFhXhk0U1B' +
  60.     'MTGkEJHSLJKehZwhKYRWQqIAEZAHok=')
  61.   ];
  62.  
  63.   targetHpBarBmp := TSCARBitmap.Create('deNpjZuBkgIP/2dkIBORCRAgx9jJIQhDcHADK' +
  64.     'Vhst');
  65.  
  66.   galderBmp := TSCARBitmap.Create('deNrjZeBkMFNSBKKCLI+CJNmcYHsQuzQaIghix' +
  67.     '1sBxSFSQDLKQRuuDCRSOhWuBq4AogbChpsDkgVbARQEa4wG6gIykNXAzIyGOwZ' +
  68.     'iGrIaoC4gCbICqAysElkWwoa4B8nAqWCEYiOye+B6kRFW98CNRbgHLILmHuQQA' +
  69.     'ABv32BQ');
  70. end;
  71.  
  72. function HasTarget: Boolean;
  73. var
  74.   x, y: Integer;
  75. begin
  76.   Result := FindBitmap(x, y, targetHpBarBmp, screen.X1, screen.Y1, screen.X2, screen.Y2);
  77. end;
  78.  
  79. procedure LootGalder;
  80. var
  81.   x, y: Integer;
  82.   p: TPoint;
  83. begin
  84.   while FindBitmapTol(x, y, galderBmp, screen.X1, screen.Y1, screen.X2, screen.Y2, 40) do
  85.   begin                
  86.     p := Point((x + Random(2)), (y + Random(2)));
  87.     MouseBtnDown(p.X, p.Y, mbLeft);
  88.     Wait(40 + Random(30));
  89.     MouseBtnUp(p.X, p.Y, mbLeft);
  90.     Wait(RandomRange(500, 900));
  91.     WriteLn('clicking galders');
  92.   end;
  93. end;
  94.  
  95. begin
  96.   ClearDebug;
  97.   Load;
  98.   GetClient.Activate;
  99.   screen := GetClient.ImageArea;
  100.   while True do
  101.   begin
  102.     LootGalder;
  103.     while not HasTarget do
  104.     begin
  105.       for i := 0 to High(monsterBmps) do
  106.       begin              
  107.         if FindBitmapTol(x, y, monsterBmps[i], screen.X1, screen.Y1, screen.X2, screen.Y2, 40) then
  108.         begin
  109.           WriteLn('attacking');
  110.           pt := Point((x + Random(2)), (y + Random(2)));
  111.           MouseBtnDown(pt.X, pt.Y, mbLeft);
  112.           Wait(40 + Random(30));
  113.           MouseBtnUp(pt.X, pt.Y, mbLeft);
  114.           Wait(800 + Random(2100));
  115.           Break;
  116.         end;
  117.       end;
  118.     end;    
  119.     t := GetSystemTime;
  120.     repeat
  121.       dead := not HasTarget;
  122.       if not dead then                    
  123.         Wait(100);
  124.     until (dead or ((GetSystemTime - t) > 25000));
  125.     if dead then
  126.       WriteLn('target died')
  127.     else
  128.       WriteLn('target is not dying for too long, giving up');
  129.   end;
  130. end.
Advertisement
Add Comment
Please, Sign In to add comment