Nuerk

Alora Gem Thiever

Mar 7th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.21 KB | None | 0 0
  1. program AloraGemStallThiever;
  2. {$I AeroLib/AeroLib.simba}
  3.  
  4. const
  5. User = 'ShugaDadi';
  6. Pass = 'lotcot101';
  7.  
  8. var
  9. Cash : TItem;
  10. Trade : Integer;
  11. Drop : Integer;
  12. Sell : Integer;
  13. NumInvs : Integer;
  14. CurrentStall : Integer;
  15. N : Integer;
  16. function lobbyScreen(): boolean;
  17. begin
  18. result := findTextTPA(0, 3, IntToBox(270, 37, 401, 55), 'are', SmallChars07, -1);
  19. end;
  20.  
  21. function shopOpen(): boolean;
  22. begin
  23. result := findTextTPA(2070783, 3, IntToBox(210, 30, 315, 52), 'ievin', UpChars07, -1);
  24. end;
  25.  
  26.  
  27. function seeRandom(): boolean;
  28. var
  29. col: TColEx;
  30. begin
  31. col.create(6758413, 20);
  32. result := (col.count(IntToBox(171, 356, 337, 390)) > 50);// and findTextTPA(65535, 3, IntToBox(227, 362, 272, 382), 'odd', SmallChars07, -1);;
  33. end;
  34.  
  35.  
  36. procedure LogOff();
  37. begin
  38. Mouse(Point(641, 483), 0, 0, Mouse_LEFT);
  39. wait(250);
  40.  
  41. Mouse(Point(644, 375), 0, 0, Mouse_LEFT);
  42. end;
  43.  
  44.  
  45. procedure Login();
  46. var
  47. i: integer;
  48. label
  49. lobby;
  50. begin
  51. if (lobbyScreen) then
  52. goTo lobby;
  53. Mouse(Point(337, 231), 0, 0, Mouse_LEFT);
  54. wait(250);
  55. i := 0;
  56. repeat
  57. Inc(i);
  58. PressKey(VK_Back);
  59. until (i > 40);
  60. wait(250);
  61. typesend(User, false);
  62. wait(250);
  63. Presskey(9);
  64. wait(250);
  65. i := 0;
  66. repeat
  67. Inc(i);
  68. PressKey(VK_Back);
  69. until (i > 40);
  70. wait(250);
  71. typesend(Pass, false);
  72. wait(250);
  73. Mouse(Point(300, 300), 0, 0, Mouse_LEFT);
  74. waitfunc(@lobbyScreen, 100, 20000);
  75. lobby:
  76. while not (lobbyScreen) do
  77. wait(100);
  78. Mouse(Point(382, 327), 0, 0, Mouse_LEFT);
  79. if waitFunc(@isloggedin, 200, 20000) then
  80. begin
  81. sleep(500);
  82. toggleRunning(true);
  83. setAngle(ANGLE_HIGH);
  84. typeSend('::THIEVE');
  85. typeByte(VK_ENTER);
  86. Mouse(Point(90, 492), 0, 0, Mouse_LEFT);
  87. end;
  88. end;
  89.  
  90. procedure randomCompass();
  91. var
  92. Keys: TIntegerArray;
  93. I: Integer;
  94. begin
  95. Keys := [VK_RIGHT, VK_LEFT];
  96. I := Random(0, 1);
  97. Wait(100 + random(50));
  98. KeyDown(Keys[I]);
  99. Wait(500 + random(1000));
  100. KeyUp(Keys[I]);
  101. Wait(200 + random(350));
  102. end;
  103.  
  104. procedure sellStuff();
  105. var
  106. TPA : TPointArray;
  107. ATPA : T2DPointArray;
  108. tCol : TColEx;
  109. I : Integer;
  110. x, y : Integer;
  111. xd, yd : Integer;
  112. begin
  113. tCol.create(11449257, 26, 0.97, 0.12);
  114. if (not tCol.findAllIn(AREA_MS, TPA)) then
  115. begin
  116. randomCompass();
  117. exit;
  118. end;
  119. ATPA := FloodFillTPA(TPA);
  120. SortATPASize(ATPA, true);
  121. HumanMMouse(middleTPA(ATPA[0]), 0, 0);
  122. if (waitUptext('orrisa', 100)) then
  123. begin
  124. fastClick(Mouse_Right);
  125. //if waitOption('Trade Ali', 300) then
  126. if FindBitmapToleranceIn(Trade, x, y, 0, 0, 568, 402, 20) then
  127. begin
  128. Mouse(Point(x, y), 0, 0, Mouse_Left);
  129. end;
  130. if waitFunc(@ShopOpen, 25, 4000) then
  131. for I := 2 to 28 do
  132. if ItemInSlot(I) then
  133. if interactSlot(I, Mouse_Right) then
  134. waitOption('-250', 250);
  135. end;
  136. end;
  137.  
  138. procedure clickFifthStall();
  139. var
  140. FirstStall : TMSObject;
  141. TPA : TPoint;
  142. n : Integer;
  143. begin
  144. FirstStall.create('ar St', ['ar Sta'], [createCol(1682886, 5, 0.10, 0.96), createCol(7040116, 5, 0.10, 0.96)], [createCol(2840694, 5, 0.19, 1.07)]);
  145. if (not FirstStall.find(5, MSCP, TPA)) then
  146. begin
  147. randomCompass();
  148. exit;
  149. end;
  150. HumanMMouse(TPA, 0, 0);
  151. if (waitUptext('ar St', 250)) then
  152. begin
  153. fastClick(Mouse_Left);
  154. n := Random(0,30);
  155. if n = 10 then
  156. randomCompass();
  157. end;
  158. end;
  159.  
  160. procedure clickFourthStall();
  161. var
  162. FirstStall : TMSObject;
  163. TPA : TPoint;
  164. n : Integer;
  165. begin
  166. FirstStall.create('ic St', ['ic Sta'], [createCol(1055613, 5, 0.10, 0.96)], [createCol(2840694, 5, 0.19, 1.07)]);
  167. if (not FirstStall.find(3, MSCP, TPA)) then
  168. begin
  169. randomCompass();
  170. exit;
  171. end;
  172. HumanMMouse(TPA, 0, 0);
  173. if (waitUptext('ic St', 250)) then
  174. begin
  175. fastClick(Mouse_Left);
  176. n := Random(0,30);
  177. if n = 10 then
  178. randomCompass();
  179. end;
  180. end;
  181.  
  182. procedure clickThirdStall();
  183. var
  184. FirstStall : TMSObject;
  185. TPA : TPoint;
  186. n : Integer;
  187. begin
  188. FirstStall.create('al St', ['al Sta'], [createCol(529986, 5, 0.10, 0.96)], [createCol(2840694, 5, 0.19, 1.07)]);
  189. if (not FirstStall.find(10, MSCP, TPA)) then
  190. begin
  191. randomCompass();
  192. exit;
  193. end;
  194. HumanMMouse(TPA, 0, 0);
  195. if (waitUptext('al St', 250)) then
  196. begin
  197. fastClick(Mouse_Left);
  198. n := Random(0,30);
  199. if n = 10 then
  200. randomCompass();
  201. end;
  202. end;
  203.  
  204. procedure clickSecondStall();
  205. var
  206. FirstStall : TMSObject;
  207. TP : TPoint;
  208. n : Integer;
  209. begin
  210. FirstStall.create('Crafting Stall', ['ng Sta'], [createCol(1482420, 5, 0.10, 0.96)], [createCol(2840694, 5, 0.19, 1.07)]);
  211. if (not FirstStall.find(3, MSCP, TP)) then
  212. begin
  213. randomCompass();
  214. exit;
  215. end;
  216. HumanMMouse(TP, 0, 0);
  217. if (waitUptext('ng St', 250)) then
  218. begin
  219. fastClick(Mouse_Left);
  220. n := Random(0,30);
  221. if n = 10 then
  222. randomCompass();
  223. end;
  224. end;
  225.  
  226. procedure clickFirstStall();
  227. var
  228. FirstStall : TMSObject;
  229. TPA : TPoint;
  230. n : Integer;
  231. begin
  232. FirstStall.create('Food Stall', ['od Sta'], [createCol(5298908, 5, 0.10, 0.96)], [createCol(2840694, 5, 0.19, 1.07)]);
  233. if (not FirstStall.find(10, MSCP, TPA)) then
  234. begin
  235. randomCompass();
  236. exit;
  237. end;
  238. HumanMMouse(TPA, 0, 0);
  239. if (waitUptext('od St', 250)) then
  240. begin
  241. fastClick(Mouse_Left);
  242. n := Random(0,30);
  243. if n = 10 then
  244. randomCompass();
  245. end;
  246. end;
  247.  
  248. procedure clickBigStall();
  249. var
  250. TPA : TPointArray;
  251. ATPA : T2DPointArray;
  252. tCol : TColEx;
  253. n : Integer;
  254. begin
  255. tCol.create(9150637, 5, 0.06, 0.55);
  256. if (not tCol.findAllIn(AREA_MS, TPA)) then
  257. begin
  258. randomCompass();
  259. exit;
  260. end;
  261. ATPA := FloodFillTPA(TPA);
  262. SortATPASize(ATPA, true);
  263. HumanMMouse((ATPA[0].MidPnt), 0, 0);
  264. if (waitUptext('em stall', 250)) then
  265. begin
  266. fastClick(Mouse_Left);
  267. n := Random(0,30);
  268. if n = 10 then
  269. randomCompass();
  270. end;
  271. end;
  272.  
  273. procedure dropStuff();
  274. var
  275. I : Integer;
  276. x, y : Integer;
  277. begin
  278. for I := 2 to 28 do
  279. if ItemInSlot(I) and not (waitUptext('ushed', 100)) then
  280. if interactSlot(I, Mouse_Right) then
  281. if FindBitmapToleranceIn(Drop, x, y, 497, 172, 761, 502, 20) then
  282. begin
  283. Mouse(Point(x, y), 0, 0, Mouse_Left);
  284. end;
  285. end;
  286.  
  287. procedure newCharacter();
  288. begin
  289. Login;
  290. Wait(1000); // Dialogue through Line 326
  291. Mouse(Point(299, 444), 0, 0, Mouse_Left);
  292. Wait(1000);
  293. Mouse(Point(299, 444), 0, 0, Mouse_Left);
  294. Wait(1000);
  295. Mouse(Point(299, 444), 0, 0, Mouse_Left);
  296. Wait(1000);
  297. Mouse(Point(258, 427), 0, 0, Mouse_Left);
  298. Wait(1000);
  299. Mouse(Point(299, 444), 0, 0, Mouse_Left);
  300. Wait(1000);
  301. Mouse(Point(299, 444), 0, 0, Mouse_Left);
  302. Wait(1000);
  303. Mouse(Point(299, 444), 0, 0, Mouse_Left);
  304. Wait(1000);
  305. Mouse(Point(299, 444), 0, 0, Mouse_Left);
  306. Wait(1000);
  307. Mouse(Point(299, 444), 0, 0, Mouse_Left);
  308. Wait(1000);
  309. Mouse(Point(299, 444), 0, 0, Mouse_Left);
  310. Wait(1000);
  311. Mouse(Point(299, 444), 0, 0, Mouse_Left);
  312. Wait(1000);
  313. Mouse(Point(266, 387), 0, 0, Mouse_Left);
  314. Wait(1000);
  315. Mouse(Point(299, 444), 0, 0, Mouse_Left);
  316. Wait(1000); //
  317. LogOff;
  318. wait(3000);
  319. Login;
  320. sleep(2000);
  321. Mouse(Point(299, 444), 0, 0, Mouse_Left);
  322. Wait(1000);
  323. toggleRunning(true);
  324. setAngle(ANGLE_HIGH);
  325. typeSend('::THIEVE');
  326. typeByte(VK_ENTER);
  327. wait(5000);
  328. HumanMMouse(Point(577, 228), 0, 0);
  329. if waitUptext('Guide book', 250) then
  330. begin
  331. fastClick(Mouse_Right);
  332. waitOption('Drop', 250);
  333. end;
  334. Wait(1000);
  335. Mouse(Point(676, 484), 0, 0, Mouse_Left);
  336. Wait(1000);
  337. Mouse(Point(709, 305), 0, 0, Mouse_Left);
  338. end;
  339.  
  340. procedure Logout();
  341. begin
  342. mousebox(IntToBox(60, 400, 110, 445), MOUSE_LEFT);
  343. Wait(5000);
  344. typeSend('::THIEVE');
  345. typeByte(VK_ENTER);
  346. end;
  347.  
  348. function getCurrentStall(): Boolean;
  349. begin
  350. if NumInvs = 0 then
  351. begin
  352. currentStall := 1;
  353. exit;
  354. end else
  355. begin
  356. if NumInvs >= 1 and NumInvs < 2 then
  357. begin
  358. currentStall := 2;
  359. exit;
  360. end else
  361. begin
  362. if NumInvs >= 2 and NumInvs < 5 then
  363. begin
  364. currentStall := 3;
  365. exit;
  366. end else
  367. begin
  368. if NumInvs >= 5 and NumInvs < 20 then
  369. begin
  370. currentStall := 4;
  371. exit;
  372. end else
  373. begin
  374. if NumInvs >= 20 and NumInvs < 40 then
  375. begin
  376. currentStall := 5;
  377. exit;
  378. end else
  379. begin
  380. if NumInvs >= 40 then
  381. begin
  382. currentStall := 6;
  383. exit;
  384. end;
  385. end;
  386. end;
  387. end;
  388. end;
  389. end;
  390. end;
  391.  
  392. procedure freememory;
  393. begin
  394. freeDTM(Cash.DTM);
  395. FreeBitmap(Drop);
  396. FreeBitmap(Trade);
  397. end;
  398.  
  399. function getState(): Variant;
  400. begin
  401. if (not (IsLoggedIn())) then
  402. exit(1);
  403. if ((not (ShopOpen())) and (getCurrentTab() = TAB_INV) and (Cash.getSlot() <> 1) and (Cash.inInventory())) then
  404. exit(3);
  405. if (seeRandom) then
  406. exit(2);
  407. if (ShopOpen()) then
  408. exit(6);
  409. case (IsInvFull) of
  410. True : exit(5);
  411. False : exit(4);
  412. end;
  413. end;
  414.  
  415. procedure progressReportAlora();
  416. begin
  417. begin
  418. write('Current Stall: ');
  419. writeln(currentStall);
  420. write('Inventories Thieved: ');
  421. writeln(NumInvs);
  422. writeln('Script Runtime: ' +timeRunning);
  423. writeln('------------------------------------------');
  424. end;
  425. end;
  426.  
  427.  
  428. procedure executeState(State: Variant);
  429. begin
  430. case (State) of
  431. 1 : newCharacter();
  432. 2 : Logout();
  433. 3 : moveItemTo(Cash.getSlot(), 1);
  434. 4 : begin
  435. if NumInvs >= 1 then
  436. begin
  437. if NumInvs >= 2 then
  438. begin
  439. if NumInvs >= 5 then
  440. begin
  441. if NumInvs >= 20 then
  442. begin
  443. if NumInvs >= 40 then
  444. begin
  445. clickBigStall;
  446. currentStall := 6;
  447. progressReportAlora;
  448. exit;
  449. end;
  450. clickFifthStall;
  451. currentStall := 5;
  452. progressReportAlora;
  453. exit;
  454. end;
  455. clickFourthStall;
  456. currentStall := 4;
  457. progressReportAlora;
  458. exit;
  459. end;
  460. clickThirdStall;
  461. currentStall := 3;
  462. progressReportAlora;
  463. exit;
  464. end;
  465. clickSecondStall;
  466. currentStall := 2;
  467. progressReportAlora;
  468. exit;
  469. end;
  470. clickFirstStall;
  471. currentStall := 1;
  472. progressReportAlora;
  473. exit;
  474. end;
  475. 5 : sellStuff();
  476. 6 : begin
  477. mouseBox(IntToBox(481, 38, 488, 43), mouse_left);
  478. if (not ShopOpen()) then
  479. dropStuff();
  480. NumInvs := NumInvs + 1
  481. end;
  482. end;
  483. end;
  484. procedure takeBreak();
  485. begin
  486. writeln('||||||||||||||||||||||||||||||||||||||||||');
  487. writeln('Taking Break at: ' +timeRunning);
  488. writeln('||||||||||||||||||||||||||||||||||||||||||');
  489. LogOff;
  490. end;
  491. begin
  492. initAL();
  493. MouseSpeed := 50;
  494. Trade := BitmapFromString(129, 15, 'meJztVlsSwyAI9HZeoL+9/zHsT' +
  495. 'NKkhMcCOtPaiQ4fhsKqu4itj2ddtuz21sQYhMpmldZ2k85IYjZrTi' +
  496. 'ul7OyVY4xIkEp/87/tgLJ3+iO5qaxprYO9cZAP/1sKVSEhAUtZEnR' +
  497. 'JID/lHEjAbViCnzQ0xp76NID3gv6EQXwOhQR1a5WSWNbE6ETiq4ui' +
  498. 'MLIi2yGAAsFWvCvBuRP6qUpDHxQcr3B4xPXcgj3GRmAPDdX6Eum1R' +
  499. 'Dqi+BaOdiJVAlZ77I+TRTXzS3CVQ5V29UZY6UEExjb24OrF99ctKn' +
  500. 'YiSwIZEKRa6jWbBEGcSvoSrurQuuLGdUiQndPL+78S9OGbt0MjxJV' +
  501. 'ALeyU/8sS8MI7Tp2VAFQvbkTOflRCrtLoreM6uv2RRa05SLcA3aNh' +
  502. 'DziF+hPYuUvIsmU3tBc3tIpT');
  503. Drop := BitmapFromString(30, 12, 'meJz7/x8EGBgYwPR/95BYaqH/MJPhbNqZDGHTzuT/SABNMabX8CjGYzIDGCDLokUKQXFcbHjgEFRJBntwmownVHHFFJpKTHEgYkAFcHPQuJiKMWMQqxaqpFvqIlwmAwBllPrH');
  504. Cash.DTM := DTMFromString('mbQAAAHicY2VgYFjAxMAwE4jXQvF8IF7MyMCwHIjXAfF8KL6+XhKM72yWZDi/Qpzh81EZBkmgfnTMiAWDAQAZvg9H');
  505. addonterminate('freememory');
  506. repeat
  507. begin
  508. executeState(getState);
  509. end;
  510. Until GetTimeRunning > 14400000; //3 hr
  511. takeBreak;
  512. end.
Add Comment
Please, Sign In to add comment