daily pastebin goal
45%
SHARE
TWEET

Untitled

a guest Dec 29th, 2016 77 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Picture of the puzzle:
  2. http://i.imgur.com/Vju5E2X.png
  3.  
  4. Picture of the sand as well, it might help:
  5. http://i.imgur.com/O2lwiuc.png
  6.  
  7.  
  8.  
  9. Goes through the script and always outputs:
  10. ali found
  11. 300406005072000380058000160800902007000040000900508006087000690034000750100307002
  12. We have encountered an error solving this puzzle.
  13. Starting a new puzzle... (This used to break our script.)
  14.  
  15. Which is on line 588.
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35. program RuneSudoku;
  36. //uses SysUtils;
  37.  
  38. {$DEFINE SMART8}
  39. {$I SRL-OSR/SRL.Simba}
  40.  
  41. const
  42.   Username = '';
  43.   Password = '';
  44.   buyMindRunes = true;
  45.   buyDeathRunes = false;
  46.   buyCosmicRunes = true;
  47.   buyNatureRunes = true;
  48.   buyChaosRunes = false;
  49.   NumbOfPlayers = 1;
  50.   ClickDelay = 5;  //Delay between the input of answers
  51.  
  52. var
  53.   numbstring, posfind:string;
  54.   ansArray : Array[1..81] of String;
  55.   count, i, v, c, z, x, y, row, col, boxrow, boxcol, buy_runes:integer;
  56.  
  57. procedure DeclarePlayers;
  58. var i, buy_runes:integer;
  59. begin
  60.   NumberOfPlayers(1);
  61.   CurrentPlayer := 0;
  62.   for i := 0 to NumbOfPlayers-1 do
  63.   Players[i].BoxRewards  := ['mote', 'ostume', 'XP', 'Gem', 'ithril', 'oal', 'une', 'oins'];
  64.  
  65.   with Players[0] do
  66.   begin
  67.   Name := Username; // Username
  68.   Pass := Password; // Password
  69.   Active := True;
  70.   Pin := '';      // Leave blank if you have no pin.
  71.   buy_runes := 0
  72.   end;
  73. end;
  74.  
  75. Procedure Antiban;
  76. Begin
  77.   Case Random(100) Of
  78.     10: HoverSkill('random', False);
  79.     20: Begin PickUpMouse; SleepAndMoveMouse(3000 + Random(500)); End;
  80.     30: IdleTime(100+random(700), 100+Random(100), 0.2+RandomE/2);
  81.     40: Begin GameTab(Tab_Stats); Wait(3000 + Random(500)); GameTab(Tab_Inv); End;
  82.     60: RandomMovement;
  83.   End;
  84. end;
  85. procedure LogIn;
  86. var a, b, c, d:integer;
  87. Begin
  88.   writeln('Attempting to log in...');
  89.   if (FindColorTolerance(a, b, 6181970, 340, 220, 340, 220, 5)) then
  90.     begin
  91.       writeln('We have detected that we are on the log in page. Trying to log in now...');
  92.       MMouse(455, 290, 5, 5);
  93.       wait(100);
  94.       ClickMouse2(mouse_left);
  95.       wait(100 + Random(500));
  96.       SendKeys(Username, 50+Random(51), 30+Random(30));
  97.       wait(500 + Random(69)); //haha 69
  98.       KeyDown(9); //Tab key down PressKey seems to hit the key twice sometimes so we're doing it this way even though it doesn't make sense...
  99.       KeyUp(9); //Tab key up
  100.       wait(1000 + Random(100));
  101.       //MMouse(343, 276, 2, 2);
  102.       //ClickMouse2(mouse_left);
  103.       //wait(200 + Random(200));
  104.       SendKeys(Password, 50+Random(51), 30+Random(30));
  105.       wait(100);
  106.       MMouse(304, 321, 5, 5);
  107.       ClickMouse2(mouse_left);
  108.       repeat
  109.         wait(1000 + random(500));
  110.       until FindColorTolerance(c, d, 584, 336, 316, 336, 316, 5);
  111.       MMouse(398, 335, 5, 5);
  112.       wait(200);
  113.       ClickMouse2(mouse_left);
  114.     end
  115.     else
  116.       begin
  117.         writeln('We have detected that we are not on the login page...');
  118.         writeln('If you are not already logged in please restart the script.');
  119.       end;
  120.  
  121. end;
  122. procedure CheckIfLoggedOut;
  123. Var a, b:integer;
  124. Begin
  125.   if (FindColorTolerance(a, b, 6181970, 340, 220, 340, 220, 5)) then
  126.     begin
  127.       writeln('We were logged out somehow... Logging back in.');
  128.       LogIn;
  129.     end;
  130. end;
  131. procedure TalkToAli;
  132. var
  133.   counter, x, y:integer;
  134. begin
  135.   writeln('starting to find ali');
  136.   if FindObjCustom(x, y, ['li', 'orri'], [13818072, 5723997, 16118771], 5) then
  137.   begin
  138.     writeln('ali found')
  139.     ClickMouse2(mouse_left);
  140.     Wait(100+random(500));
  141.     counter := 0;
  142.     repeat
  143.       counter := counter + 1;
  144.       ClickToContinue;
  145.       Wait(100 + Random(100)); //Added this delay because it wasn't always registering correctly
  146.     until (FindNPCChatText('unes', Nothing)) or (counter > 100);
  147.     wait(400 + Random(200));
  148.     FindNPCChatText('unes', clickleft);
  149.     ClickToContinue;
  150.     counter := 0;
  151.     repeat
  152.       counter := counter + 1;
  153.       ClickToContinue;
  154.       Wait(300 + Random(100));
  155.     until (FindNPCChatText('arge', Nothing)) or (counter > 10);
  156.     wait(100 + Random(200));
  157.     FindNPCChatText('arge', clickleft);
  158.     counter := 0;
  159.     repeat
  160.       counter := counter + 1;
  161.       ClickToContinue;
  162.       Wait(100 + Random(100));
  163.     until (FindNPCChatText('xamine', Nothing)) or (counter > 10);
  164.     wait(100 + Random(200));
  165.     FindNPCChatText('xamine', clickleft);
  166.   end;
  167. end;
  168.  
  169. procedure writeAnsArray(inputString : string);
  170. begin
  171.   for i:=1 to 81 do
  172.   begin
  173.     if not (strtoint(copy(inputString,i,1)) = 0) then
  174.     begin
  175.       ansArray[i] := (copy(inputString,i,1));
  176.     end else
  177.     begin
  178.       ansArray[i] := '123456789';
  179.     end;
  180.   end;
  181. end;
  182.  
  183. function checkRows : boolean;
  184. begin
  185.   for i:=1 to 81 do
  186.   begin
  187.     if (length(ansArray[i]) = 1) then   //if the string length is 1, the answer is decided. need to remove the number from the row
  188.     begin
  189.       row := (((i-1)/9)+1);             //determines the row
  190.       for v:=1 to 81 do
  191.       begin
  192.         if (row = (((v-1)/9)+1)) then   //checks if the row of boxes 1-81 matches the row of the string above ^
  193.         begin
  194.           if not (v = i) then           //if the box is not the same box as the correct string ^
  195.           begin
  196.             if not ((pos(ansArray[i], ansArray[v])) = 0) then     //if the string can be found in any of the strings on the same row
  197.             begin
  198.               //writeln(ansArray[i]+' is at box '+inttostr(i)+' and removed from box '+inttostr(v)+' because they are at the same row');
  199.               delete(ansArray[v], (pos(ansArray[i], ansArray[v])), 1);          //finds and removes said string from the other string
  200.               result := true;
  201.             end;
  202.           end;
  203.         end;
  204.       end;
  205.     end;
  206.   end;
  207. end;
  208.  
  209. function checkCols: boolean;
  210. begin
  211.   for i:=1 to 81 do
  212.   begin
  213.     if (length(ansArray[i]) = 1) then   //if the string length is 1, the answer is decided. need to remove the number from the col
  214.     begin
  215.       col := (((i-1) mod 9)+1);         //determines the col
  216.       for v:=1 to 81 do
  217.       begin
  218.         if (col = (((v-1) mod 9)+1)) then   //checks if the col of boxes 1-81 matches the col of the string above ^
  219.         begin
  220.           if not (v = i) then           //if the box is not the same box as the correct string ^
  221.           begin
  222.             if not ((pos(ansArray[i], ansArray[v])) = 0) then     //if the string can be found in any of the strings on the same col
  223.             begin
  224.               //writeln(ansArray[i]+' is at box '+inttostr(i)+' and removed from box '+inttostr(v)+' because they are at the same col');
  225.               delete(ansArray[v], (pos(ansArray[i], ansArray[v])), 1);          //finds and removes said string from the other string
  226.               result := true;
  227.             end;
  228.           end;
  229.         end;
  230.       end;
  231.     end;
  232.   end;
  233. end;
  234.  
  235. function checkTbTbox : boolean;
  236. begin
  237.   for i:=1 to 81 do
  238.   begin
  239.     if (length(ansArray[i]) = 1) then   //if the string length is 1, the answer is decided. need to remove the number from the 3x3 box
  240.     begin
  241.       boxrow := ((((i-1)/9)/3)+1);      //determines the boxrow
  242.       boxcol := ((((i-1) mod 9)/3)+1);  //determines the boxcol
  243.       for v:=1 to 81 do
  244.       begin
  245.         if ((boxrow = ((((v-1)/9)/3)+1)) and (boxcol = ((((v-1) mod 9)/3)+1))) then //checks if the boxcol and boxrow match the boxcol and boxrow of the string above ^
  246.         begin
  247.           if not (v = i) then         //if the box is not the same box as the correct string ^
  248.           begin
  249.             if not ((pos(ansArray[i], ansArray[v])) = 0 ) then       //if the string can be found in any of the string on the same boxcol and boxrow
  250.             begin
  251.               //writeln(ansArray[i]+' is at box '+inttostr(i)+' and removed from box '+inttostr(v)+' because they are at the same boxcol and boxrow');
  252.               delete(ansArray[v], (pos(ansArray[i], ansArray[v])), 1);          //finds and removes said string from the other string
  253.               result := true;
  254.             end;
  255.           end;
  256.         end;
  257.       end;
  258.     end;
  259.   end;
  260. end;
  261.  
  262. function solvesquares : boolean;
  263. begin
  264.   if (checkRows or checkCols or checkTbTbox) then
  265.   begin
  266.     result := true;
  267.   end;
  268. end;
  269.  
  270. function singlesRows : boolean;
  271. begin
  272.   for row:=1 to 9 do                      //for rows 1 - 9
  273.   begin
  274.     for c:=1 to 9 do                    //for numbers 1 - 9
  275.     begin
  276.       z := 0;
  277.       posfind := '';
  278.       for v:=1 to 81 do                 //for boxes 1 - 81
  279.       begin
  280.         if (row = (((v-1)/9)+1)) then     //checks if the row of boxes 1-81 matches the row above ^
  281.         begin
  282.           if not ((pos(inttostr(c), ansArray[v])) = 0) then         //if the number is found in the box
  283.           begin
  284.             z := z+1;                                               //count + 1
  285.             posfind := posfind + inttostr(v);                       //string of box
  286.           end;
  287.         end;
  288.       end;                                                          //if only 1 is found
  289.       if ((z = 1) and not (length(ansArray[strtoint(posfind)]) = 1)) then
  290.       begin
  291.         ansArray[strtoint(posfind)] := inttostr(c);                 //replaces the string with the number
  292.         result := true;
  293.       end;
  294.     end;
  295.   end;
  296. end;
  297.  
  298. function singlesCols : boolean;
  299. begin
  300.   for col:=1 to 9 do                        //for col 1 - 9
  301.   begin
  302.     for c:=1 to 9 do                      //for numbers 1 - 9
  303.     begin
  304.       z := 0;
  305.       posfind := '';
  306.       for v:=1 to 81 do                   //for boxes 1 - 81
  307.       begin
  308.         if (col = (((v-1) mod 9)+1)) then   //checks if the row of boxes 1-81 matches the row above ^
  309.         begin
  310.           if not ((pos(inttostr(c), ansArray[v])) = 0) then         //if the number is found in the box
  311.           begin
  312.             z := z+1;                                               //count + 1
  313.             posfind := posfind + inttostr(v);                       //string of box
  314.           end;
  315.         end;
  316.       end;                                                          //if only 1 is found
  317.       if ((z = 1) and not (length(ansArray[strtoint(posfind)]) = 1)) then
  318.       begin
  319.         ansArray[strtoint(posfind)] := inttostr(c);                 //replaces the string with the number
  320.         result := true;
  321.       end;
  322.     end;
  323.   end;
  324. end;
  325.  
  326. function singlesTbTbox : boolean;
  327. begin
  328.   for boxrow:=1 to 3 do                        //for col 1 - 9
  329.   begin
  330.     for boxcol:=1 to 3 do
  331.     begin
  332.       for c:=1 to 9 do                      //for numbers 1 - 9
  333.       begin
  334.         z := 0;
  335.         posfind := '';
  336.         for v:=1 to 81 do                   //for boxes 1 - 81
  337.         begin
  338.           if (boxrow = ((((v-1)/9)/3)+1)) and (boxcol = ((((v-1) mod 9)/3)+1)) then   //checks if the row of boxes 1-81 matches the row above ^
  339.           begin
  340.             if not ((pos(inttostr(c), ansArray[v])) = 0) then         //if the number is found in the box
  341.             begin
  342.               z := z+1;                                               //count + 1
  343.               posfind := posfind + inttostr(v);                       //string of box
  344.             end;
  345.           end;
  346.         end;                                                          //if only 1 is found
  347.         if ((z = 1) and not (length(ansArray[strtoint(posfind)]) = 1)) then
  348.         begin
  349.           ansArray[strtoint(posfind)] := inttostr(c);                 //replaces the string with the number
  350.           result := true;
  351.         end;
  352.       end;
  353.     end;
  354.   end;
  355. end;
  356.  
  357. function solvesingles : boolean;
  358. begin
  359.   if (singlesRows or singlesCols or singlesTbTbox) then
  360.   begin
  361.     result := true;
  362.   end;
  363. end;
  364.  
  365. procedure outputPuzzle;
  366. begin
  367.   i := 1;
  368.   for v:=1 to 9 do
  369.   begin
  370.     writeln('output puzz ['+ansArray[i]+']['+ansArray[i+1]+']['+ansArray[i+2]+']['+ansArray[i+3]+']['+ansArray[i+4]+']['+ansArray[i+5]+']['+ansArray[i+6]+']['+ansArray[i+7]+']['+ansArray[i+8]+']');
  371.     i := i + 9;
  372.   end;
  373. end;
  374.  
  375. procedure findAnswer;
  376. begin
  377.   repeat
  378.     repeat
  379.     //it attempts to solve in the until
  380.     until not (solvesquares);
  381.   //it attempts to solve in the until
  382.   until not (solvesingles);
  383. end;
  384.  
  385. procedure writeNumbstring;
  386. var
  387.   x, y, mind1, mind11, fire2, fire22, air3, air33, water4, water44, earth5, earth55, body6, body66, death7, death77, chaos8, chaos88, law9, law99:integer;
  388. begin //air and chaos detection needs to be fixed
  389.   mind1 := 133906; // new
  390.   fire2 := 1121418; //new
  391.   air3 := DTMFromString('mFQEAAHic42VgYOhgZGDoAuJeIO6D4n6oWBsQNwFxAxQ3QsXsgPpMgdgCiK0ZIHxHIHYFYhcgdgJieyC2AWJLqLonDx6QjPmB+kjFjGRgFAAAz50tPg==');
  392.   water4 := 9049105;  //new
  393.   earth5 := 538965; //new
  394.   body6 := 10951188;  //new
  395.   death7 := DTMFromString('m1gAAAHic42JgYPAFYi8oHQjEwUAcAMRBUNoHiD2B+CwQnwHiU0B8EsoGiV0E4itQfB6IRQQFGfZu3oyCsYnxA9USgxmJxAgAAMESHUs=');
  396.   chaos8 := 608072;  //fix
  397.   law9 := 11934228;  //new
  398.   mind11 := 1738719;   //new
  399.   fire22 := 1319335;   //new
  400.   air33 := DTMFromString('mFQEAAHic42VgYOhgZGDoAuJeIO6D4n6oWBsQNwFxAxQ3QsXsgPpMgdgCiK0ZIHxHIHYFYhcgdgJieyC2AWJLqLonDx6QjPmB+kjFjGRgFAAAz50tPg==');
  401.   water44 := 10951188;  //new
  402.   earth55 := 870508;     //new
  403.   body66 := 13639447;   //new
  404.   death77 := DTMFromString('mWAAAAHicY2FgYGgG4hYgbgfiViCOBeJIII4B4gQgFhEUZHjy4AGYBmF+oBgyZkTDIAAAnHoHEA==');
  405.   chaos88 := 1613009;  //new
  406.   law99 := 14623002;   //new
  407.   c := 22;
  408.   numbstring := '';
  409.   for i:=1 to 9 do
  410.   begin
  411.     z := 133;
  412.     for v:=1 to 9 do
  413.     begin
  414.       if (FindColorTolerance(x, y, mind1, z-15, c-15, z+15, c+15, 5) or FindColorTolerance(x, y, mind11, z-15, c-15, z+15, c+15, 5)) then
  415.       begin
  416.         numbstring := numbstring + '1';
  417.       end else if (FindColorTolerance(x, y, fire2, z-15, c-15, z+15, c+15, 5) or FindColorTolerance(x, y, fire22, z-15, c-15, z+15, c+15, 5)) then
  418.       begin
  419.         numbstring := numbstring + '2';
  420.       end else if (FindDTM(air3, x, y, z-15, c-15, z+15, c+15)) then
  421.       begin
  422.         numbstring := numbstring + '3';
  423.       end else if (FindColorTolerance(x, y, water4, z-15, c-15, z+15, c+15, 5) or FindColorTolerance(x, y, water44, z-15, c-15, z+15, c+15, 5)) then
  424.       begin
  425.         numbstring := numbstring + '4';
  426.       end else if (FindColorTolerance(x, y, earth5, z-15, c-15, z+15, c+15, 5) or FindColorTolerance(x, y, earth55, z-15, c-15, z+15, c+15, 5)) then
  427.       begin
  428.         numbstring := numbstring + '5';
  429.       end else if (FindColorTolerance(x, y, body6, z-15, c-15, z+15, c+15, 5) or FindColorTolerance(x, y, body66, z-15, c-15, z+15, c+15, 5)) then
  430.       begin
  431.         numbstring := numbstring + '6';
  432.       end else if (FindDTM(death7, x, y, z-15, c-15, z+15, c+15) or FindDTM(death77, x, y, z-15, c-15, z+15, c+15)) then
  433.       begin
  434.         numbstring := numbstring + '7';
  435.       end else if (FindColorTolerance(x, y, chaos8, z-15, c-15, z+15, c+15, 5) or FindColorTolerance(x, y, chaos88, z-15, c-15, z+15, c+15, 5)) then
  436.       begin
  437.         numbstring := numbstring + '8';
  438.       end else if (FindColorTolerance(x, y, law9, z-15, c-15, z+15, c+15, 5) or FindColorTolerance(x, y, law99, z-15, c-15, z+15, c+15, 5)) then
  439.       begin
  440.         numbstring := numbstring + '9';
  441.       end else
  442.       begin
  443.         numbstring := numbstring + '0';
  444.       end;
  445.     z := z+37;
  446.     end;
  447.   c := c+37;
  448.   end;
  449.   FreeDTM(air3);
  450.   FreeDTM(death7);
  451.   FreeDTM(air33);
  452.   FreeDTM(death77);
  453. end;
  454.  
  455. procedure inputAnswer;
  456. var
  457.   x1, y1:integer;
  458. begin
  459.   x1 := 29;
  460.   y1 := 112;
  461.   for v:=1 to 9 do
  462.   begin
  463.     MMouse(x1, y1, 5, 5);
  464.     wait(100)
  465.     ClickMouse2(mouse_left);
  466.     for i:=1 to 81 do
  467.     begin
  468.       if (strtoint(ansArray[i]) = v) then
  469.       begin
  470.         if not (strtoint(numbstring[i]) = v) then
  471.         begin
  472.           MMouse(((133)+(37*((i-1) mod 9))), ((22)+(37*((i-1)/9))), 3, 3);
  473.           wait(50+random(55));
  474.           ClickMouse2(mouse_left);
  475.           wait(ClickDelay+random(2));
  476.         end;
  477.       end;
  478.     end;
  479.     y1 := y1 + 50;
  480.     if (v = 5) then
  481.     begin
  482.       y1 := 160;   //used to be 112
  483.       x1 := x1 + 50;
  484.     end;
  485.   end;
  486. end;
  487.  
  488. procedure SolveLargePuzzle;
  489. var
  490.   x, y:integer;
  491. begin
  492.   v := 0
  493.   repeat
  494.   wait(100+random(100));
  495.   v := v+1;
  496. //  writeln('1');
  497.   until ((FindColorTolerance(x, y, 797794, 470, 20, 490, 40, 5) or (v = 30)))
  498.   if (FindColorTolerance(x, y, 797794, 470, 20, 490, 40, 5)) then
  499.   begin
  500.  //   writeln('2');
  501.     writeNumbstring;
  502.     writeln(numbstring);
  503.     writeAnsArray(numbstring);
  504.     findAnswer;
  505.     outputPuzzle;
  506.     inputAnswer;
  507.   end;
  508. end;
  509.  
  510. procedure BuyRunes;
  511. var
  512.   counter, x, y,a,b,c,d,e,f,g,h:integer;  //gotta call the throw away variables
  513.   begin
  514.   if (FindColorTolerance(x, y, 797794, 470, 20, 490, 40, 5)) then
  515.   begin
  516.     MMouse(50, 70, 30, 5);
  517.     wait(50+random(40));
  518.     ClickMouse2(mouse_left);
  519.     Wait(3000+random(500));
  520.     FindNPCChatText('what', Clickleft);
  521.     wait(900);
  522.     //FindColorSpiralTolerance(x, y, 1411858, MSX1, MSY1, MSX2, MSY2, 30); //finds the nature rune
  523.  
  524.     //Deaths Start
  525.     if (buyDeathRunes = true) then
  526.       begin
  527.         counter := 0;
  528.         while FindColorTolerance(a,b,8290184,136,83,136,83,15) and (counter < 7) do
  529.           begin
  530.             counter := counter + 1;
  531.             mousebox(137,79,149,91,mouse_right);
  532.             wait(150+random(50));
  533.             waitoption('10',mouse_left);
  534.             wait(100);
  535.           end;
  536.       end;
  537.  
  538.     //Minds Start
  539.     if (buyMindRunes = true) then
  540.       begin
  541.         counter := 0;
  542.         while FindColorTolerance(c,d,8158598,181,83,181,83,15) and (counter < 7) do
  543.           begin
  544.             counter := counter + 1;
  545.             mousebox(185,80,195,91,mouse_right);
  546.             wait(200+random(50));
  547.             waitoption('10',mouse_left);
  548.             wait(100);
  549.           end;
  550.       end;
  551.  
  552.     //Nats Start
  553.     if (buyNatureRunes = true) then
  554.       begin
  555.         counter := 0;
  556.         while FindColorTolerance(e,f,7434874,274,87,274,87,15) and (counter < 7)  do
  557.           begin
  558.             counter := counter + 1;
  559.             mousebox(278,80,290,92,mouse_right);
  560.             wait(200+random(50));
  561.             waitoption('10',mouse_left);
  562.             wait(100);
  563.           end;
  564.       end;
  565.  
  566.       //Chaos
  567.       if (buyChaosRunes = true) then
  568.         begin
  569.           counter := 0;
  570.           while FindColorTolerance(g,h,1812704,374,81,374,81,15) and (counter < 7) do
  571.             begin
  572.               counter := counter + 1;
  573.               MMouse(373,82,5,5);
  574.               wait(115);
  575.               ClickMouse2(mouse_right);
  576.               wait(150+random(50));
  577.               waitoption('10',mouse_left);
  578.               wait(100);
  579.           end;
  580.         end;
  581.     //Cosmics Start
  582.     if (buyCosmicRunes = true) then
  583.       begin
  584.         counter := 0;
  585.         while FindColorTolerance(g,h,8421770,87,129,87,129,15) and (counter < 8) do
  586.           begin
  587.             counter := counter + 1;
  588.             mousebox(91,127,101,138,mouse_right);
  589.             wait(200+random(50));
  590.             waitoption('10',mouse_left);
  591.             wait(100);
  592.           end;
  593.       end;
  594.       wait(200);
  595.       MMouse(484, 39, 5, 5);
  596.       wait(200);
  597.       ClickMouse2(mouse_left);
  598.     end;
  599.           //put buy stuff here
  600.   end;
  601. Procedure MainLoop;
  602.     var
  603.       a, b, c, d:integer;  //gotta call the throw away variables
  604.   begin
  605.     CheckIfLoggedOut;
  606.     MakeCompass(-95+random(40));
  607.     TalkToAli;
  608.     Try
  609.       begin
  610.         SolveLargePuzzle;
  611.         BuyRunes;
  612.         Writeln('RunTime : '+TimeRunning);
  613.         Writeln('Caskets Opened : '+toStr(count));
  614.         Writeln('Large caskets per hour : ' + toStr((3600000*count)/GetTimeRunning));
  615.       end;
  616.     Except
  617.       if (FindColorTolerance(a,b,797794,67,39,67,39,15)) then
  618.         begin
  619.           MMouse(19, 19, 5, 5);
  620.           wait(200);
  621.           ClickMouse2(mouse_left);
  622.           Writeln('We have encountered an error solving this puzzle.');
  623.           Writeln('Starting a new puzzle... (This used to break our script.)');
  624.           wait(200);
  625.         end
  626.         else
  627.           begin
  628.             Writeln('We have encountered an error somewhere...');
  629.             Writeln('We are somehow also not on the Rune Sudoku screen anymore...');
  630.             Writeln('Attempting to log out and then back in to restart the script.');
  631.             MMouse(642, 483, 5, 5);
  632.             ClickMouse2(mouse_left);
  633.             wait(200);
  634.             MMouse(637, 375, 5, 5);
  635.             ClickMouse2(mouse_left);
  636.             wait(5000);
  637.             if (FindColorTolerance(c,d,5458504,356,215,356,215,15)) then //Checks for login screen
  638.               begin
  639.                 MMouse(437, 288, 5, 5);
  640.                 ClickMouse2(mouse_left);
  641.                 wait(1000);
  642.                 LogIn;
  643.               end;
  644.           end;
  645.       end;
  646.   end;
  647.  
  648. begin
  649.   SetupSRL();
  650.   Declareplayers;
  651.   LogIn;
  652.   Repeat
  653.     MainLoop;
  654.   Until false;
  655. end.
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top