Guest User

Untitled

a guest
Mar 12th, 2016
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.42 KB | None | 0 0
  1. program HoodzCooker;
  2. {$DEFINE SMART} {add // to use browser/osbuddy}
  3. {$i AeroLib/AeroLib.Simba}
  4.  
  5. var
  6. x, y, cooked, currentFood: Integer;
  7. DTM_Lobster, DTM_Trout, DTM_Salmon, DTM_Tuna, DTM_Karambwam, DTM_Shrimp, DTM_Shark: Integer;
  8. Raw_Array, xpTable: TIntegerArray;
  9. breakAfterTime, breakLength: Integer;
  10.  
  11. const
  12. P_USERNAME = 'dalelocey143@gmail.ca';
  13. P_PASSWORD = 'jakesadick';
  14. P_PIN = '';
  15.  
  16. USEBREAKS = true;
  17. breakAfterHours_MIN = 2;
  18. breakAfterHours_MAX = 3;
  19. breakForMinutes_MIN = 10;
  20. breakForMinutes_MAX = 40;
  21.  
  22. VERSION = '1';
  23.  
  24. procedure declarePlayer();
  25. begin
  26. Me.Name := P_USERNAME;
  27. Me.Pass := P_PASSWORD;
  28. Me.Pin := P_PIN;
  29. Me.Nick := '';
  30. Me.Active := True;
  31. Me.Member := True;
  32. end;
  33.  
  34. procedure updater();
  35. var
  36. NewFile: integer;
  37. OnlineVersion, NewScript, NewFileName: string;
  38. begin
  39. writeln('Checking for script updates...');
  40. OnlineVersion := GetPage('http://pastebin.com/raw.php?i=Fnc4CpZp');
  41. if (trim(OnlineVersion) > VERSION) then
  42. begin
  43. writeLn('Script update available!');
  44. writeLn('Updating script to v' + OnlineVersion);
  45. NewScript := GetPage('http://pastebin.com/raw.php?i=LJWtzExX');
  46. NewFileName := 'C:\Simba\Scripts\' + 'HoodzCooker Aero V' + Trim(OnlineVersion) + '.simba';
  47. NewFile := Rewritefile(NewFileName, true);
  48. try
  49. WriteFileString(NewFile, NewScript);
  50. except
  51. begin
  52. writeLn('Fatal error writing to ' + NewFileName + '!!');
  53. terminatescript;
  54. end;
  55. end;
  56. CloseFile(NewFile);
  57. writeLn('New script downloaded to ' + NewFileName + '. Please restart Simba.');
  58. TerminateScript;
  59. end
  60. else
  61. writeLn('You have the latest version of the script!');
  62. end;
  63.  
  64. procedure stats_check;
  65. begin
  66. if (STATS_ID = '') then
  67. begin
  68. writeln('You MUST have a stats account registered to use this script');
  69. writeln('You can register for free here: http://stats.grats.pw/reg.php');
  70. writeln('More information about stats here: https://villavu.com/forum/showthread.php?t=112103&p=1332139');
  71. TerminateScript;
  72. end;
  73. end;
  74.  
  75. procedure randomBreakTime();
  76. begin
  77. breakAfterTime := GetTimeRunning + (RandomRange(breakAfterHours_MIN, breakAfterHours_MAX) * 3600000) + RandomRange(2000, 3500000);
  78. Writeln('breakAfterTime = ' + MsToTime(breakAfterTime, 3));
  79. breakLength := (RandomRange(breakForMinutes_MIN, breakForMinutes_MAX) * 60000) + RandomRange(2000, 59000);
  80. Writeln('breakLength = ' + MsToTime(breakLength, 3));
  81. end;
  82.  
  83. procedure BreakHandlerCustom();
  84. begin
  85. writeln('starting breakhandler');
  86. while (isLoggedIn) do
  87. logoutPlayer;
  88. while not (getTimeRunning >= (breakAfterTime + breakLength)) do
  89. begin
  90. Writeln('Break handler active');
  91. Writeln('TimeRunning: ' + MsToTime(getTimeRunning, 3));
  92. Writeln('Breaking till: ' + MsToTime((breakAfterTime + breakLength), 3));
  93. Writeln('Time left until break is done: ' + MsToTime(((breakAfterTime + breakLength) - getTimeRunning), 3));
  94. Sleep(5000);
  95. ClearDebug;
  96. end;
  97. randomBreakTime;
  98. end;
  99.  
  100. procedure free;
  101. begin
  102. freeDTM(DTM_Lobster);
  103. freeDTM(DTM_Trout);
  104. freeDTM(DTM_Salmon);
  105. freeDTM(DTM_Tuna);
  106. freeDTM(DTM_Karambwam);
  107. freeDTM(DTM_Shrimp);
  108. freeDTM(DTM_Shark);
  109. end;
  110.  
  111. procedure setupPlayer();
  112. begin
  113. writeln('player setup...');
  114. if (not isLoggedIn()) then
  115. loginPlayer(false);
  116. if (isLoggedIn()) then
  117. begin
  118. toggleRunning(true);
  119. setAngle(ANGLE_HIGH);
  120. end;
  121. end;
  122.  
  123. procedure setup();
  124. begin
  125. mouseSpeed := Random(18, 25);
  126. writeln('mouseSpeed set at: ' + intToStr(mouseSpeed));
  127. DTM_Lobster := DTMFromString('mggAAAHicY2NgYHBmYmDwBGJ7IDYHYhMg9gbiJ0C5j0D8GohfAfFTIH4OxBUuckCSEQOzM2AHmCohGAIA83QH9g==');
  128. DTM_Shark := DTMFromString('mggAAAHicY2NgYGgH4logngZlVwPxFCBOBOIiIC4A4nQgToPi6b09QJIRA7MzYAeYKiEYAgDc0Qdv');
  129. DTM_Trout := DTMFromString('mbQAAAHicY2VgYHBiYmCwB2I3IDYFYksgfgEUf8cAoV8B8QcgPrJ7F5BkRMHsDJiAEQsGAwBuJwgm');
  130. DTM_Shrimp := DTMFromString('mggAAAHicY2NgYOBnhmAmIOYEYnEglgJiNUYGBiNGCG0IxFpArALEezuzgboYMTA7A3aAqRKCIQAAFswDOQ==');
  131. DTM_Salmon := DTMFromString('mggAAAHicY2NgYNBiYWBQA2JZINYHYk0glgNiVUYgH4i1gVgDyjYE4q5wf6AuRgzMzoAdYKqEYAgAADSUA1E=');
  132. DTM_Tuna := DTMFromString('mwQAAAHic42RgYLjLxMDwGIgvA/EtIL4HxM+A+CYQv4XyIxgZGOKAOBaIE6E4CohDGCFy0UC8b8sWoGmMuLEsAwM7A37Ajt8EOIYDACVbDZE=');
  133. DTM_Karambwam := DTMFromString('mrAAAAHic42BgYNjIxMCwAYi3A/FyIF4PxLuAeB8QLwbit0A1P4D4CxB/BeLfUP4nIH4HxC4xJkCSESdmZ8APcOuEYBgAAGHHDi0=');;
  134. Raw_Array := [DTM_Shrimp, DTM_Trout, DTM_Salmon, DTM_Tuna, DTM_Lobster, DTM_Shark, DTM_Karambwam];
  135. xpTable := [30, 70, 90, 100, 120, 210, 190];
  136. addOnTerminate('free');
  137. randomBreakTime();
  138. setupPlayer();
  139. end;
  140.  
  141. procedure customMouse(point: TPoint);
  142. begin
  143. case random(0, 6) of
  144. 0..2: BrakeMMouse(point, random(5), random(5), true);
  145. 3: BrakeMMouse(point, random(5), random(5), false);
  146. 4..5: MissMouse(point, random(5), random(5));
  147. 6: HumanMMouse(point, random(5), random(5));
  148. end;
  149. end;
  150.  
  151. function waitForPixelShift(amount, timeOut: Integer; box: TBox): Boolean;
  152. var
  153. x1, y1, BMP, BMP2, tempShift: Integer;
  154. t: Timer;
  155. begin
  156. result := false;
  157. t.start();
  158. BMP := bitmapFromClient(box.x1, box.y1, box.x2, box.y2);
  159. repeat
  160. if (t.timeElapsed() >= timeOut) then
  161. break;
  162. sleep(250);
  163. BMP2 := bitmapFromClient(box.x1, box.y1, box.x2, box.y2);
  164. tempShift := calculatePixelShift(BMP, BMP2, IntToBox(0, 0, (box.x2 - box.x1), (box.y2 - box.y1)));
  165. if (calculatePixelShift(BMP, BMP2, IntToBox(0, 0, (box.x2 - box.x1), (box.y2 - box.y1))) >= amount) then
  166. result := true;
  167. freeBitmap(BMP2);
  168. until (Result);
  169. freeBitmap(BMP);
  170. end;
  171.  
  172. function getLocations(DTM: Integer): TIntegerArray;
  173. var
  174. I: Integer;
  175. tempArray: TIntegerArray;
  176. begin
  177. setLength(tempArray, 0);
  178. for I := 1 to 28 do
  179. begin
  180. if (FindDTM(DTM, x, y, invBox(I).x1, invBox(I).y1, invBox(I).x2, invBox(I).y2)) then
  181. begin
  182. SetLength(tempArray, Length(tempArray) + 1);
  183. tempArray[High(tempArray)] := I;
  184. end;
  185. end;
  186. result := tempArray;
  187. end;
  188.  
  189. function textVisible(): Boolean;
  190. var
  191. t: Timer;
  192. numb: Integer;
  193. begin
  194. result := false;
  195. numb := random(2000, 3000);
  196. t.start();
  197. repeat
  198. if (t.timeElapsed() > numb) then
  199. break;
  200. sleep(random(320, 600));
  201. if (countColor(0, 211, 392, 307, 411) = 277) then
  202. result := true;
  203. until (result);
  204. end;
  205.  
  206. function selectMenu(): Boolean;
  207. begin
  208. result := (countColor(128, 129, 359, 379, 382) > 50);
  209. end;
  210.  
  211. procedure cookHandler();
  212. var
  213. Timer, world, I, rand: Integer;
  214. TPA: TPointArray;
  215. ATPA: T2DPointArray;
  216. spot, selectPoint: TPoint;
  217. aBool: Boolean;
  218. tCol : TColEx;
  219. begin
  220. aBool := false;
  221. if (not anySlotActivated()) then
  222. begin
  223. for I := 0 to high(Raw_Array) do
  224. begin
  225. if (FindDTM(Raw_Array[I], x, y, MIX1, MIY1, MIX2, MIY2)) then
  226. begin
  227. customMouse(point(x, y));
  228. sleep(20 + random(30));
  229. case random(12) of
  230. 0..10: fastClick(MOUSE_LEFT);
  231. 11:
  232. begin
  233. fastClick(MOUSE_RIGHT);
  234. waitOption('Use', 300);
  235. end;
  236. end;
  237. sleep(20 + random(120));
  238. break;
  239. end
  240. else
  241. if (I = length(Raw_Array)) then
  242. exit;
  243. end;
  244. end;
  245. tCol.create(2660821, 15, 0.15, 1.42);
  246. if (not tCol.findAllIn(AREA_MS, TPA)) then
  247. begin
  248. if (isBankOpen()) then
  249. begin
  250. closeInterface();
  251. exit;
  252. end;
  253. world := randomWorld(true);
  254. changeWorld(world, false);
  255. exit;
  256. end;
  257. ATPA := FloodFillTPA(TPA);
  258. sortATPASize(ATPA, true);
  259. if (length(ATPA[0]) < 20) then
  260. begin
  261. if (isBankOpen()) then
  262. begin
  263. closeInterface();
  264. exit;
  265. end;
  266. world := randomWorld(true);
  267. changeWorld(world, false);
  268. exit;
  269. end;
  270. sleep(200 + random(200));
  271. if (not anySlotActivated()) then
  272. exit;
  273. spot := middleTPA(ATPA[0]);
  274. customMouse(spot);
  275. sleep(20 + random(150));
  276. if (waitUpText('ire', 300)) then
  277. begin
  278. aBool := true;
  279. case random(10) of
  280. 0..8: fastClick(MOUSE_LEFT);
  281. 9:
  282. begin
  283. fastClick(MOUSE_RIGHT);
  284. waitOption('-> Fire', 300);
  285. end;
  286. end;
  287. end
  288. else
  289. begin
  290. fastClick(MOUSE_RIGHT);
  291. if (waitOption('-> Fire', 300)) then
  292. aBool := true;
  293. end;
  294. if (aBool) then
  295. begin
  296. sleep(1000);
  297. timer := (getTimeRunning() + 6000 + random(1200));
  298. while (isLoggedIn) and (not selectMenu()) and (getTimeRunning() < timer) do
  299. sleep(200 + random(150));
  300. if (selectMenu()) then
  301. begin
  302. if (I = high(RAW_ARRAY)) then
  303. selectPoint := Point(385, 414)
  304. else
  305. selectPoint := Point(260, 400);
  306. customMouse(point(selectPoint.X + random( - 22, 22), selectPoint.Y + random( - 17, 30)));
  307. if (waitUptext('ook', 670)) then
  308. begin
  309. fastClick(MOUSE_RIGHT);
  310. if (I = high(RAW_ARRAY)) then
  311. rand := 0
  312. else
  313. rand := random(16);
  314. case rand of
  315. 0:
  316. begin
  317. waitOption('Cook X', 300);
  318. if (textVisible()) then
  319. typeSend(toStr(random(28, 99)), true);
  320. end;
  321. 1..15: waitOption('Cook All', 300);
  322. end;
  323. end;
  324. end;
  325. end;
  326. end;
  327.  
  328. procedure antiban();
  329. var
  330. rand: Integer;
  331. what: String
  332. begin
  333. if (random(0, 30) = 0) then
  334. begin
  335. rand := random(0, 71);
  336. case rand of
  337. 0..45:
  338. begin
  339. if (pointInBox(getMousePnt(), intToBox(1, 1, 765, 500))) then
  340. MMouseOffClient('random');
  341. what := 'mouse off client';
  342. end;
  343. 46..51:
  344. begin
  345. compassMovement(30, 170, false);
  346. what := 'compass movement';
  347. end;
  348. 52..57:
  349. begin
  350. hoverSkill(SKILL_COOKING, false);
  351. what := 'hovering skill';
  352. end;
  353. 58..70:
  354. begin
  355. pickUpMouse;
  356. what := 'pick up mouse';
  357. end;
  358. end;
  359. writeln('last antiban on: ' + mstoTime(getTimeRunning, 3) + ' ' + what);
  360. end;
  361. end;
  362.  
  363. procedure bankHandler();
  364. var
  365. slot, I: Integer;
  366. slots: TIntegerArray;
  367. begin
  368. if (Interfaces[PINSCREEN].isVisible()) then
  369. inPin(P_PIN);
  370. case random(30) of
  371. 0..28: quickDeposit('inv');
  372. 29:
  373. begin
  374. middleBox(invBox(1));
  375. customMouse(Point(x, y));
  376. sleep(20 + random(20));
  377. fastClick(MOUSE_RIGHT);
  378. waitOption('Deposit-All', 300);
  379. end;
  380. end;
  381. for I := 0 to high(Raw_Array) do
  382. begin
  383. if (FindDTM(Raw_Array[I], x, y, MSX1, MSY1, MSX2, MSY2)) then
  384. begin
  385. customMouse(Point(x, y));
  386. sleep(20 + random(30));
  387. fastClick(MOUSE_RIGHT);
  388. if (random(0, 1) = 0) then
  389. waitOption('Withdraw-All ', 300)
  390. else
  391. waitOption('Withdraw-All-but-one', 300);
  392. sleep(100 + random(100));
  393. closeInterface();
  394. sleep(500 + random(300));
  395. cookhandler();
  396. break;
  397. end else
  398. begin
  399. if (isBankOpen() and (I = length(Raw_Array))) then
  400. begin
  401. closeInterface();
  402. logoutPlayer();
  403. writeln('out of raws');
  404. terminateScript();
  405. end;
  406. end;
  407. end;
  408. end;
  409.  
  410. procedure openBank();
  411. var
  412. TPA: TPointArray;
  413. ATPA: T2DPointArray;
  414. I, world: Integer;
  415. spot: TPoint;
  416. t: Timer;
  417. tCol : TColEx;
  418. begin
  419. if (isBankOpen()) then
  420. exit;
  421. if (Interfaces[PINSCREEN].isVisible()) then
  422. inPin(P_PIN);
  423. tCol.create(1521211, 10, 0.08, 0.91);
  424. if (not tCol.findAllIn(AREA_MS, TPA)) then
  425. begin
  426. if (isBankOpen()) then
  427. begin
  428. closeInterface();
  429. exit;
  430. end;
  431. world := randomWorld(true);
  432. changeWorld(world, false);
  433. exit;
  434. end;
  435. ATPA := FloodFillTPA(TPA);
  436. SortATPASize(ATPA, true);
  437. spot := middleTPA(ATPA[0]);
  438. customMouse(spot);
  439. sleep(20 + random(30));
  440. if (waitUptext('ald', 250)) then
  441. begin
  442. fastClick(MOUSE_RIGHT);
  443. waitOption('Bank', 300);
  444. I := getTimeRunning() + 3000 + random(1000);
  445. while (not isBankOpen()) and (getTimeRunning < I) do
  446. sleep(250 + random(200));
  447. end;
  448. end;
  449.  
  450. function findAnyRaw(): Boolean;
  451. var
  452. I: Integer;
  453. begin
  454. result := false;
  455. for I := 0 to high(Raw_Array) do
  456. begin
  457. if (FindDTM(Raw_Array[I], x, y, MIX1, MIY1, MIX2, MIY2)) then
  458. begin
  459. currentFood := I;
  460. exit(true);
  461. end;
  462. end;
  463. end;
  464.  
  465. procedure incVars();
  466. var
  467. xp: Integer;
  468. begin
  469. xp := xpTable[currentFood];
  470. stats_incVariable('78', xp);
  471. end;
  472.  
  473. function getState(): Integer;
  474. begin
  475. if (getTimeRunning >= breakAfterTime) and (USEBREAKS) then
  476. exit(7);
  477. if (not isLoggedIn()) then
  478. exit(0);
  479. if ((getCurrentTab <> TAB_INV) and (not isBankOpen())) then
  480. exit(1);
  481. if (not findAnyRaw()) and (not isBankOpen()) then
  482. exit(5);
  483. if (not findAnyRaw()) and (isBankOpen()) then
  484. exit(6);
  485. if (findAnyRaw()) and (isBankOpen()) then
  486. exit(2);
  487. if (findAnyRaw()) and (not isBankOpen()) and (not waitForPixelShift(10, 3400, intToBox(MIX1, MIY1, MIX2, MIY2))) then
  488. exit(3);
  489. incVars();
  490. exit(4);
  491. end;
  492.  
  493. procedure executeState(State: Integer);
  494. begin
  495. case (State) of
  496. 0: setupPlayer();
  497. 1: gameTab(TAB_INV);
  498. 2: closeInterface();
  499. 3: cookHandler();
  500. 4: antiban();
  501. 5: openBank();
  502. 6: bankHandler();
  503. 7: breakHandlerCustom();
  504. end;
  505. stats_Commit();
  506. sleep(Random(100, 200));
  507. end;
  508.  
  509. begin
  510. declarePlayer();
  511. initAL();
  512. updater();
  513. setup();
  514. stats_setup('40');
  515. stats_check;
  516. stats_initVariable('78', 0);
  517. repeat
  518. executeState(getState());
  519. until (false);
  520. end.
Add Comment
Please, Sign In to add comment