Advertisement
zamaro

Fhumidify

Apr 1st, 2014
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.94 KB | None | 0 0
  1. { Humidify Script, made on December 31, 2013 by samerdl. Happy new year
  2. Updated and posted on January 11, 2014.
  3. Have a great civilian year.
  4.  
  5.  
  6.  
  7. **** Instructions ****
  8. 1) Have the Humidify spell runes: Water staff, Fire & astral runes.
  9. 2) Make or buy a fishbowl (42 crafting), place it in Inv slot #5.
  10. 3) Ease up your PC's CPU usage, memory leaks can mess it up.
  11. 4) Stand at spots with no random events I.E: GWD, PC bank/boat.
  12. 5) Setup the script and launch.
  13. **** Topic ****
  14. http://villavu.com/forum/showthread.php?t=107550&p=1279873#post1279873
  15.  
  16. First script in a while
  17.  
  18. Thanks for everything SRL
  19.  
  20. Hi Hoodz Hi Wilco
  21. {* *}
  22.  
  23. program Humidify;
  24. {$DEFINE SMART8}
  25. {$I SRL-OSR/SRL.Simba}
  26. {$i SRL-OSR\SRL\misc\debug.simba}
  27. {$i SRL-OSR\SRL\misc\SmartGraphics.simba}
  28. {$I SRL-OSR/SRL/misc/al_functions.simba}
  29. {$I SRL-OSR/SRL/core/antirandoms/C_AntiRandoms.simba}
  30. {$I SRL-OSR/SRL/misc/MiniReflection.simba}
  31.  
  32. var
  33. worldshopped, w, messedup, Cast, timer: integer;
  34. TimeTillBreak: string;
  35.  
  36. const
  37.  
  38. Breakhandler = true; // Breaks settings.
  39. BreakTime1 = 45; // how long to play before breaking.
  40. BreakTime2 = 120; // ----
  41. BreakWait1 = 15; // how long to break for.
  42. BreakWait2 = 30; // -----
  43.  
  44.  
  45.  
  46. {Fail Safes}
  47. SpellColor= 9861723; // Humidify Color at the coords: 565,248, change it.
  48. debugScolor = false; // Debugs the Humidify Spell Color at the start.
  49. SafeTimer = 25000; // Maximum Fail Safe timer, logs out when it passes.
  50. AreaCheck = false; // assign a polygon area as 'your area'
  51. decoords = false; // Debugs your Coords from reflection to debugbox.
  52. XCord1 = 2920; // coords for the polygon.
  53. Xcord2 = 2940; // if script isn't inside coords, it will terminate.
  54. YCord1 = 5340; // a fail safe, can be disabled.
  55. YCord2 = 5360; // Uses reflection of course.
  56. RuneCheck = true; // Checks if you've run out of runes.
  57. HopPlayers= true; // hops worlds if another player appears in the area.
  58. Dotected = 1; // If More than X white dots, script Hops worlds.
  59. TermCheck = true; // If errors compile, it allows for termination.
  60.  
  61.  
  62. procedure playerSetup;
  63. begin
  64. HowManyPlayers := 1;
  65. NumberOfPlayers(HowManyPlayers);
  66. CurrentPlayer := 0;
  67. Players[0].Name := 'zezima'; //Login name.
  68. Players[0].Pass := 'iscool'; //Password.
  69. Players[0].Nick := 'ezim'; //Nickname of the account, 4 letters only.
  70. Players[0].Active := True;
  71. end;
  72.  
  73. {_______________________ End of set up _______________________________________}
  74.  
  75.  
  76. {Added Green UpText for magic}
  77. function GetGreenUptext: string;
  78. var
  79. WhiteT, BlueT, YellowT, OrangeT, GreenT, FoundText: string;
  80. begin
  81. WhiteT := GetTextAtExWrap(8, 8, 80, 21, 0, 5, 1, 14541281, 55, 'UpChars07');
  82. BlueT := GetTextAtExWrap(35, 8, 150, 21, 0, 5, 1, 13423640, 65, 'UpChars07');
  83. YellowT := GetTextAtExWrap(35, 8, 150, 21, 0, 5, 1, 1235160, 40, 'UpChars07');
  84. OrangeT := GetTextAtExWrap(35, 8, 150, 21, 0, 5, 1, 4687583, 53, 'UpChars07');
  85. GreenT := GetTextAtExWrap(8, 8, 150, 21, 0, 5, 1, 120577, 65, 'UpChars07');
  86. FoundText := WhiteT + ' ' + BlueT + YellowT + OrangeT + GreenT;
  87. FoundText := ReplaceWrap(FoundText, '.', '', [rfReplaceAll]);
  88. FoundText := ReplaceWrap(FoundText, '/', '', [rfReplaceAll]);
  89. FoundText := ReplaceWrap(FoundText, '\', '', [rfReplaceAll]);
  90. FoundText := ReplaceWrap(FoundText, ',', '', [rfReplaceAll]);
  91. FoundText := ReplaceWrap(FoundText, '*', '', [rfReplaceAll]);
  92. FoundText := ReplaceWrap(FoundText, '^', '', [rfReplaceAll]);
  93. FoundText := ReplaceWrap(FoundText, '"', '', [rfReplaceAll]);
  94. Result := FoundText;
  95. end;
  96.  
  97. {minor changes}
  98. function IsUpTextMultiCustom2(Text: TStringArray): Boolean;
  99. var
  100. TheText: string;
  101. i, n: Integer;
  102. begin
  103. TheText := GetGreenUptext;
  104. n := High(Text);
  105. for i := 0 to n do
  106. if (Pos(Text[i], TheText) > 0) then
  107. begin
  108. Result := True;
  109. Exit;
  110. end;
  111. end;
  112.  
  113. {minor changes}
  114. function WaitUpTextMulti2(S: TStringArray; Time: Integer): Boolean;
  115. var
  116. T: Integer;
  117. begin
  118. Result := false;
  119. T := GetSystemTime + Time;
  120. while (GetSystemTime < T) do
  121. begin
  122. if (IsUpTextMultiCustom2(S)) then
  123. begin
  124. Result := True;
  125. Exit;
  126. end;
  127. Wait(20 + Random(20));
  128. end;
  129. end;
  130.  
  131.  
  132. procedure StartTime;
  133. begin
  134. Timer := GetTimeRunning + RandomRange(BreakTime1 * 60000, BreakTime2 * 60000);
  135. end;
  136.  
  137. {breaking procedure}
  138. procedure takebreaks;
  139. var
  140. T, BreakTimer: integer;
  141. Times: string;
  142. begin
  143. if (Breakhandler = false) then
  144. exit;
  145. if (GetTimeRunning >= Timer) then
  146. begin
  147. writeln('its time to take a break....');
  148. BreakTimer := Randomrange(BreakWait1 * 60000, BreakWait2 * 60000);
  149. Times := (MsToTime(BreakTimer, Time_Formal));
  150. writeln('Breaking for: ' + Times);
  151. marktime(t);
  152. repeat
  153. wait(400);
  154. logout;
  155. if not loggedin then
  156. break;
  157. until (not (loggedin));
  158. if (not (loggedin)) then
  159. begin
  160. repeat
  161. wait(1000);
  162. if (TimeFromMark(t) >= BreakTimer) then
  163. break;
  164. until (TimeFromMark(t) >= BreakTimer);
  165. if (TimeFromMark(T) >= BreakTimer) then
  166. begin
  167. writeln('break time is over, back to the script');
  168. StartTime;
  169. exit;
  170. end;
  171. end;
  172. end;
  173. end;
  174.  
  175. {random wait times}
  176. procedure WaitShortClick;
  177. begin
  178. if (not (loggedin)) then
  179. exit;
  180. case random(600) of
  181. 1..450: Wait(RandomRange(100, 150));
  182. 451..570: Wait(RandomRange(150, 200));
  183. 571..590: Wait(RandomRange(200, 250));
  184. 591..600: Wait(RandomRange(250, 400));
  185. end;
  186. end;
  187.  
  188. procedure WaitShortClick2;
  189. begin
  190. if (not (loggedin)) then
  191. exit;
  192. case random(600) of
  193. 1..450: Wait(RandomRange(400, 450));
  194. 451..570: Wait(RandomRange(450, 500));
  195. 571..590: Wait(RandomRange(500, 550));
  196. 591..600: Wait(RandomRange(550, 600));
  197. end;
  198. end;
  199.  
  200. procedure WaitHumanClick;
  201. begin
  202. if (not (loggedin)) then
  203. exit;
  204. case random(600) of
  205. 1..450: Wait(RandomRange(600, 650));
  206. 451..570: Wait(RandomRange(650, 700));
  207. 571..590: Wait(RandomRange(700, 750));
  208. 591..600: Wait(RandomRange(750, 800));
  209. end;
  210. end;
  211.  
  212. procedure WaitHumanClick2;
  213. begin
  214. if (not (loggedin)) then
  215. exit;
  216. case random(600) of
  217. 1..450: Wait(RandomRange(800, 1000));
  218. 451..570: Wait(RandomRange(1000, 1200));
  219. 571..590: Wait(RandomRange(1200, 1400));
  220. 591..600: Wait(RandomRange(1400, 2000));
  221. end;
  222. end;
  223.  
  224.  
  225.  
  226. {makes chat tab selected to ALL, to read text properly}
  227. function NotchatTabAll: boolean;
  228. var
  229. Monster: TpointArray;
  230. TmpCts: Integer;
  231. begin
  232. if (not (loggedin)) then
  233. exit;
  234. tmpCTS := GetColorToleranceSpeed;
  235. ColorToleranceSpeed(2);
  236. SetColorSpeed2Modifiers(0.10, 0.34);
  237. result := FindColorsTolerance(Monster, 4213586, 6, 482, 60, 497, 11);
  238. ColorToleranceSpeed(0);
  239. SetColorSpeed2Modifiers(0.2, 0.2);
  240. end;
  241.  
  242. procedure MakeMyChatTabAll;
  243. begin
  244. if (not (loggedin)) then
  245. exit;
  246. writeln('Our chat Tab is not set to all, making chat tab to all');
  247. mousebox(12, 485, 45, 497, 1);
  248. end;
  249.  
  250. {prints progress reports}
  251. procedure ProgressReport;
  252. var
  253. Timeleft, XpPerhour, Casts, CastsPH: Integer;
  254. begin
  255. if (not (loggedin)) then
  256. exit;
  257. ClearDebug;
  258. FindNonInventoryRandoms();
  259. findnoninventoryrandoms;
  260. findcustomrandoms;
  261. XpPerhour := (3600 * (Cast) / ((GetTimeRunning / 1000)));
  262. Casts := (Cast) CastsPH := (3600 * (Casts) / ((GetTimeRunning / 1000)));
  263. timeleft := ((Timer) - (GetTimeRunning));
  264. TimeTillBreak := (MsToTime(timeleft, Time_Formal));
  265. WriteLn('* FHumidify v 1.0');
  266. WriteLn('* Runtime: ' + TimeRunning);
  267. Writeln('*');
  268. writeln('* No.Of Casts: ' + IntToStr(Cast) + ' Casts P/H: ' + IntToStr(XpPerhour) + ' Times messed up ' + IntToStr(messedup));
  269. if (Breakhandler = true) then
  270. Writeln('* Time till break : ' + (TimeTillBreak));
  271. end;
  272.  
  273. { Moves mouse at Yellow Dots on Mini map, npc dots..}
  274. function HoverNearbyNpc: boolean;
  275. var
  276. I: Tpointarray;
  277. P: Integer;
  278. begin
  279. if (not (loggedin)) then
  280. exit;
  281. I := GetMiniMapDots('npc');
  282. if (length(I) > 0) then
  283. begin
  284. SortTPAFrom(i, Point(MMCX, MMCY));
  285. P := random(length(I)) Mmouse(I[0].x, I[0].y, 3, 3);
  286. result := true;
  287. end;
  288. end;
  289.  
  290. {random keyboard movement, antiban}
  291. procedure Keyboards;
  292. begin
  293. case random(5) of
  294. 0..2:
  295. begin
  296. KeyDown(37);
  297. WaitShortClick KeyUp(37);
  298. WaitShortClick KeyDown(40);
  299. WaitShortClick KeyUp(40);
  300. end;
  301. 3..4:
  302. begin
  303. KeyDown(39);
  304. WaitShortClick KeyUp(39);
  305. WaitShortClick KeyDown(38);
  306. WaitShortClick KeyUp(38);
  307. end;
  308. 5:
  309. begin
  310. KeyDown(38);
  311. WaitShortClick KeyUp(38);
  312. WaitShortClick KeyDown(39);
  313. WaitShortClick KeyUp(39);
  314. end;
  315. end;
  316. end;
  317.  
  318. {antiban procedures, won't always call it}
  319. procedure Antiban;
  320. begin
  321. if (not (loggedin)) then
  322. exit;
  323. case random(100) of
  324. 0..56:
  325. begin
  326. end;
  327. 57..100:
  328. begin
  329. case random(150) of
  330. 10: hoverskill(skill_magic, false);
  331. 20: BoredHuman;
  332. 30: MMouseOffClient('top');
  333. 40: MMouseOffClient('left');
  334. 50: MMouseOffClient('right');
  335. 60: MMouseOffClient('bottom');
  336. 70: SmallRandomMouse;
  337. 80: RandomAngle(1);
  338. 90: RandomAngle(2);
  339. 100: PickUpMouse;
  340. 110: CompassMovement(10, 70, true);
  341. 120: HoverNearbyNpc;
  342. 130: Keyboards;
  343. 140: MissMouse(250, 250);
  344. 150: RandomMovement;
  345. 160: CompassMovement(240, 300, true);
  346. 170: AdjustMouseSpeed(3, 10, 20);
  347. 180: RandomFKeys(true);
  348. 190: RandomTab(true);
  349. end;
  350. end;
  351. end;
  352. end;
  353.  
  354. {Knows when we run out of runes *NOT used anymore*
  355. function OutofRunesText: boolean;
  356. begin
  357. if (not (loggedin)) then
  358. exit;
  359. result := FindTextTPA(clBlack, 0, MCX1, MCY1, MCX2, MCY2, TheMagicWord, smallChars07, Nothing);
  360. end; }
  361.  
  362. {Will see if the 'spell' color is still blue in magic TAB}
  363.  
  364. function GotRunes: boolean;
  365. var
  366. x: integer;
  367. begin
  368. if (not (loggedin)) then
  369. exit;
  370. if (RuneCheck = false) then
  371. exit;
  372. if not GameTab(tab_magic) then
  373. exit;
  374. x := GetColor(565, 248) if (debugScolor = true) then
  375. begin
  376. writeln('Our Humidify Spell Color is: ' + IntToStr(x));
  377. writeln('please set DebugSColor to false now');
  378. terminatescript;
  379. end;
  380. if (X = SpellColor) then
  381. result := true
  382. end;
  383.  
  384. {Terminates the script}
  385. procedure Termination;
  386. begin
  387. if (TermCheck = false) then
  388. exit;
  389. if (loggedin) then
  390. begin
  391. Writeln('we ran out of runes, or something really went wrong?, terminating script');
  392. wait(randomrange(3000, 5000));
  393. repeat
  394. if (not (loggedin)) then
  395. break;
  396. logout;
  397. waithumanclick;
  398. if (not (loggedin)) then
  399. break;
  400. until (not (loggedin));
  401. if (not (loggedin)) then
  402. begin
  403. terminatescript;
  404. end;
  405. end;
  406. end;
  407.  
  408. {detects white dots on minimap, if more than X dots appear, script logs'}
  409. function PlayersDetected: boolean;
  410. var
  411. P: Integer;
  412. begin
  413. if (not (loggedin)) then
  414. exit;
  415. if (HopPlayers = false) then
  416. exit;
  417. P := CountDots('white');
  418. if (P > Dotected) then
  419. begin
  420. writeln('we have more than one player on the map, logging out');
  421. result := true;
  422. end;
  423. end;
  424.  
  425. {RandomWorld by Ashaman88, Added changes by Elfffy & Turpintator}
  426. function RandomWorld2: Integer;
  427. var
  428. h: integer;
  429. begin
  430. if (loggedin) then
  431. exit;
  432. worldarray := [301, 319, 341, 361, 302, 320, 342, 362, 303, 321, 343, 365, 304, 322, 344, 366, 305, 325, 345, 367, 306, 326, 346, 368, 308, 327, 349, 369, 309, 328, 350, 370, 310, 329, 351, 373, 311, 330, 352, 374, 312, 333, 353, 375, 313, 334, 354, 376, 314, 335, 357, 377, 316, 336, 358, 378, 317, 337, 359, 000, 338, 360];
  433. H := Random(High(WorldArray));
  434. Result := worldarray[H];
  435. W := Result;
  436. end;
  437.  
  438. {logs you in}
  439. procedure loginloop;
  440. var
  441. b: integer;
  442. begin
  443. if loggedin then
  444. exit;
  445. if (not (loggedin)) then
  446. begin
  447. if loggedin then
  448. exit;
  449. b := W;
  450. RandomWorld2;
  451. if B <> W then
  452. begin
  453. if (W = 316) or (w = 308) or (w = 325) or (w = 337) then
  454. begin
  455. repeat
  456. wait(400);
  457. FindNonInventoryRandoms();
  458. findnoninventoryrandoms;
  459. findcustomrandoms;
  460. RandomWorld2;
  461. if (W <> 316) or (w <> 308) or (w <> 325) or (w <> 337) then
  462. break;
  463. until (W <> 316) or (w <> 308) or (w <> 325) or (w <> 337) if B <> W then
  464. begin
  465. Changeworld(W);
  466. inc(worldshopped);
  467. ProgressReport;
  468. makecompass('n');
  469. setangle(0);
  470. end;
  471. end;
  472. end;
  473. end;
  474. end;
  475.  
  476. {hops worlds}
  477. procedure HopWorlds;
  478. begin
  479. if (HopPlayers = false) then
  480. exit;
  481. if (loggedin) then
  482. begin
  483. Writeln('We have detected a player nearby, hopping worlds');
  484. repeat
  485. if (not (loggedin)) then
  486. break;
  487. logout;
  488. waithumanclick;
  489. if (not (loggedin)) then
  490. break;
  491. until (not (loggedin));
  492. if (not (loggedin)) then
  493. begin
  494. loginloop;
  495. end;
  496. end;
  497. end;
  498.  
  499. {Colors for the bowl of water when its full, blue color}
  500. function BowlWater: boolean;
  501. var
  502. TPA: TpointArray;
  503. begin
  504. if (not (loggedin)) then
  505. exit;
  506. ColorToleranceSpeed(2);
  507. SetColorSpeed2Modifiers(0.52, 1.09);
  508. result := FindColorsTolerance(TPA, 8415075, 565, 247, 592, 270, 1);
  509. ColorToleranceSpeed(1);
  510. SetColorSpeed2Modifiers(0.02, 0.2);
  511. end;
  512.  
  513. {Used as a Fail Safe if you get stuck outside your safe area somehow}
  514. function InsideSafeSpot: boolean;
  515. begin
  516. if (not (loggedin)) then
  517. exit;
  518. result := R_inPolygon([point(xcord1, ycord1), point(Xcord1, ycord2), point(xcord2, ycord2), point(xcord2, ycord2)]);
  519. if (result = false) then
  520. begin
  521. writeln('we are lost!');
  522. termination;
  523. end;
  524. end;
  525.  
  526. {clicks the blue bowl}
  527. procedure Clickbowl;
  528. begin
  529. if not loggedin then
  530. exit;
  531. if (AreaCheck = true) then
  532. InsideSafeSpot;
  533. if WaitUpTextMulti2(['Empty'], 300) then
  534. begin
  535. clickmouse2(mouse_left);
  536. case random(100) of
  537. 0..50: waithumanclick;
  538. 50..60: waitshortclick;
  539. 61..80: waitshortclick2;
  540. 81..95: waithumanclick2;
  541. 96.100: antiban;
  542. end;
  543. exit;
  544. end;
  545. case random(100) of
  546. 0..50: waitshortclick;
  547. 50..60: waitshortclick2;
  548. 61..80: waithumanclick;
  549. 81..95: waithumanclick2;
  550. 96.100: antiban;
  551. end;
  552. case random(20) of
  553. 0..16: Mouse(RandomRange(572, 574), RandomRange(251, 253), random(1), random(1), mouse_move);
  554. 17..18: Mouse(RandomRange(575, 575), RandomRange(260, 262), random(1), random(1), mouse_move);
  555. 19..20: Mouse(RandomRange(572, 575), RandomRange(255, 270), random(1), random(1), mouse_move);
  556. end;
  557. if WaitUpTextMulti2(['Empty'], 300) then
  558. begin
  559. clickmouse2(mouse_left);
  560. case random(100) of
  561. 0..50: waithumanclick;
  562. 50..60: waitshortclick;
  563. 61..80: waitshortclick2;
  564. 81..95: waithumanclick2;
  565. 96.100: antiban;
  566. end;
  567. end;
  568. end;
  569.  
  570. {clicks at the magic tab}
  571. procedure clickmagic;
  572. var
  573. t: integer;
  574. begin
  575. if not loggedin then
  576. exit;
  577. if (AreaCheck = true) then
  578. InsideSafeSpot;
  579. if BowlWater then
  580. exit;
  581. case random(10) of
  582. 0..8: FTab(tab_magic);
  583. 9..10: GameTab(tab_magic);
  584. end;
  585. case random(100) of
  586. 0..50: waithumanclick;
  587. 50..60: waitshortclick;
  588. 61..80: waitshortclick2;
  589. 81..95: waithumanclick2;
  590. 96.100: antiban;
  591. end;
  592. if gametab(tab_magic) then
  593. begin
  594. if not GotRunes then
  595. Termination;
  596. case random(10) of
  597. 0..8: Mouse(RandomRange(571, 574), RandomRange(251, 253), random(1), random(1), mouse_move);
  598. 9..10: Mouse(RandomRange(560, 570), RandomRange(247, 260), random(1), random(1), mouse_move);
  599. end;
  600. if WaitUpTextMulti2(['Cast Humidify'], 300) then
  601. begin
  602. clickmouse2(mouse_left);
  603. case random(10) of
  604. 0..8: FTab(tab_Inv);
  605. 9..10: GameTab(tab_Inv);
  606. end;
  607. Inc(cast);
  608. progressreport;
  609. marktime(t);
  610. repeat
  611. wait(400);
  612. if not loggedin then
  613. exit;
  614. if BowlWater then
  615. exit;
  616. if not gametab(tab_inv) then
  617. gametab(tab_inv);
  618. until (TimeFromMark(t) >= SafeTimer) or (bowlwater);
  619. if (TimeFromMark(T) >= SafeTimer) then
  620. begin
  621. writeln('something went wrong, the bowl full of water never appeared');
  622. inc(messedup);
  623. repeat
  624. wait(400);
  625. Logout;
  626. if not loggedin then
  627. exit;
  628. Logout;
  629. until (not loggedin)
  630. end;
  631. end
  632. else
  633. begin
  634. writeln('we messed up, we dont have cast humidify in select, probably a CPU leak issue from client side');
  635. Mouse(RandomRange(740, 755), RandomRange(290, 330), random(2), random(2), mouse_left);
  636. inc(messedup);
  637. case random(100) of
  638. 0..50: waithumanclick;
  639. 50..60: waitshortclick;
  640. 61..80: waitshortclick2;
  641. 81..95: waithumanclick2;
  642. 96.100: antiban;
  643. end;
  644. end;
  645. end;
  646. end;
  647.  
  648. {Loop cycle of magic}
  649. procedure magicloop;
  650. begin
  651. if not loggedin then
  652. exit;
  653. takebreaks;
  654. if PlayersDetected then
  655. HopWorlds;
  656. if NotchatTabAll then
  657. MakeMyChatTabAll;
  658. if (AreaCheck = true) then
  659. InsideSafeSpot;
  660. if BowlWater then
  661. clickbowl;
  662. if not BowlWater then
  663. Clickmagic;
  664. end;
  665.  
  666. {Fail safes loop}
  667. procedure mainloop;
  668. begin
  669. if not loggedin then
  670. exit;
  671. if loggedin then
  672. magicloop;
  673. end;
  674.  
  675. {debugs your position using reflection}
  676. procedure DebugPosition;
  677. var
  678. t: integer;
  679. point1: tpoint;
  680. begin
  681. marktime(t);
  682. repeat
  683. wait(400);
  684. Point1 := R_GetTileGlobal;
  685. writeln(point1);
  686. FindNonInventoryRandoms();
  687. findnoninventoryrandoms;
  688. findcustomrandoms;
  689. until (TimeFromMark(t) >= SafeTimer);
  690. end;
  691.  
  692. {debugs humidify spell cast color}
  693. procedure DebuggSColor;
  694. var
  695. t: integer;
  696. begin
  697. marktime(t);
  698. repeat
  699. wait(400);
  700. GotRunes;
  701. FindNonInventoryRandoms();
  702. findnoninventoryrandoms;
  703. findcustomrandoms;
  704. until (TimeFromMark(t) >= SafeTimer);
  705. end;
  706.  
  707. {starts up the script}
  708. procedure startitup;
  709. begin
  710. Playersetup;
  711. SetupSRL;
  712. ActivateClient;
  713. SRL_CombatRandoms := False;
  714. StartTime;
  715. if (decoords = true) then
  716. DebugPosition;
  717. if (debugScolor = true) then
  718. DebuggSColor;
  719. end;
  720.  
  721. begin
  722. startitup;
  723. repeat
  724. wait(400);
  725. if loggedin then
  726. mainloop;
  727. if not loggedin then
  728. loginplayer;
  729. until (false);
  730. writeln('how did we get here...');
  731. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement