Page 1 of 2 12 LastLast
Results 1 to 25 of 27

Thread: Wister´s West Keldagrim Miner

  1. #1
    Join Date
    Jan 2012
    Posts
    537
    Mentioned
    1 Post(s)
    Quoted
    16 Post(s)

    Default Wister´s West Keldagrim Miner

    This is my first script released to the public, it´s designed for a specific area which there werent any scripts released, until now that is...


    I give you all my own miner for the West Keldagrim Mine.

    Keldagrim is a large underground city, home to the Dwarves. It is a member's only city. To access Keldagrim, you'll need to start the quest, The Giant Dwarf.


    This script can mine adamant/rune/gold, but it only mines gold while waiting for either adamant, rune or both.

    Requirements:
    - Member;
    - Forgiveness of a Chaos Dwarf;
    - The Giant Dwarf quest started;
    - 70 mining for adamant;
    - 85 mining for runite.

    You can start the script in the mine or anywhere from there to the bank.






    The cash varies from 200k-350k per hour, but it mostly depends on how many runite ores it gathers.

    Dont expect it to be perfect but it was tested alot, that is, when i did it some time ago, cant garantee the same now.

    This is a one time release (at least until now), there probably wont be any updates to this script since im working on others, so if you guys find some bugs tell me but i dont garantee i will fix them (until im finished with the scripts im doing) but it should work fine until the next nuke(?).


    Gimme your opinions, it will help me, and if you feel like i deserve a plus rep wont do hard



    Simba Code:
    program KeldagrimMiner;

    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    {|                                                                 |}
    {|             Keldagrim Adamantite/Runite/Gold Miner              |}
    {|                          By Wister V1.0                         |}
    {|                                                                 |}
    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    {|                                                                 |}
    {| Requirements:                                                   |}
    {|                                                                 |}
    {|          =>70 Mining                                            |}
    {|          =>(Recomended) Pickaxe in your hand;                   |}
    {|            Or in your 1st inventory slot.                       |}
    {|                                                                 |}
    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    {|                                                                 |}
    {| Set-Up Instructions:                                            |}
    {|                                                                 |}
    {|  =>I recomend you to run the script with your                   |}
    {|    Character placed in the Keldagrim Mine. Anyway,              |}
    {|    you can run it in the Keldagrim Bank or close from           |}
    {|    it in the path to the mine.                                  |}
    {|  =>If you want to mine Adamantite, Runite and Gold, go          |}
    {|    to the script's 43 line and just leave: RocksToMine := 0;    |}
    {|    If you want to mine only Adamantite and Runite, replace      |}
    {|    the 0 by 1, at line 43.                                      |}
    {|    If you only want to mine Adamantite, replace the 0 by 2.     |}
    {|                                                                 |}
    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}

    {$DEFINE SMART}
    {$i srl/srl.simba}
    {$i sps/sps.simba}
    {$I srl/srl/misc/debug.simba}

    Var                                      //Global variables
      AddyCounter,RuneCounter,GoldCounter,DepositNumber,StartTime,RocksToMine,KFlag:integer;

    Procedure DeclarePlayers;
    begin

      RocksToMine := 0;                      //If you want to mine Adamantite, Runite and Gold, leave 0.
                                             //If you want to mine only Adamantite and Runite, replace the 0 by 1.
                                             //If you only want to mine Adamantite, replace the 0 by 2.

      KFlag := 0;
      HowManyPlayers := 1;
      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer := 0;

      Players[0].Name := '';                //Runescape Username
      Players[0].Pass := '';                 //Runescape Password
      Players[0].Nick := '';                 //3 or 4 lowercase letters from your runescape username.
      Players[0].Active := True;
      Players[0].Pin := '';                  //Leave Blank if no PIN.

    end;

    procedure Login;
    begin

      ClearDebug;
      Smart_Server := 0;                     //Zero for Random World
      Smart_Members := True;                 //True => Member
      Smart_Signed := True;
      Smart_SuperDetail := False;
      SetupSRL();
      DeclarePlayers;
      LoginPlayer;

    end;

    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    {|  You'll be able to see the report every time you make a deposit.        |}
    {|  It can be found at the Debug box.                                      |}
    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    Procedure Report;
    Var

      TotalXp,Sec,XP_H,MiningRate,MiningRate1,MiningRate2,DepositRate:Integer;

    begin

      TotalXp := (105*AddyCounter) + (138*RuneCounter) + (65*GoldCounter);

      Sec := (1+((GetSystemTime-StartTime)/1000));
      XP_H := (TotalXp*3600)/Sec;
      MiningRate := (AddyCounter*3600)/Sec;
      MiningRate1 := (RuneCounter*3600)/Sec;
      MiningRate2 := (GoldCounter*3600)/Sec;
      DepositRate := (DepositNumber*3600)/Sec;

      writeLn('||-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-||');
      writeLn('||-:_:-:_:-:_:-:_:-: Keldagrim Miner :-:_:-:_:-:_:-:_:-||');
      writeLn('||Time Running: ' + Padr(TimeRunning,38) + ' ||');
      writeLn('||Adamantite Mined: ' + Padr(IntToStr(AddyCounter),34) + ' ||');
      if((RocksToMine = 0) or (RocksToMine = 1)) then
        writeLn('||Runite Mined: ' + Padr(IntToStr(RuneCounter),38) + ' ||');
      if(RocksToMine = 0) then
        writeLn('||Gold Mined: ' + Padr(IntToStr(GoldCounter),40) + ' ||');
      writeLn('||Exp Earned: ' + Padr(IntToStr(TotalXp),40) + ' ||');
      writeln('||Adamantite Mined Per Hour: ' + Padr(IntToStr(MiningRate),25) + ' ||');
      if((RocksToMine = 0) or (RocksToMine = 1)) then
        writeln('||Runite Mined Per Hour: ' + Padr(IntToStr(MiningRate1),29) + ' ||');
      if(RocksToMine = 0) then
        writeln('||Gold Mined Per Hour: ' + Padr(IntToStr(MiningRate2),31) + ' ||');
      writeLn('||Exp Per Hour: ' + Padr(IntToStr(XP_H),38) + ' ||');
      writeLn('||Deposit Per Hour: ' + Padr(IntToStr(DepositRate),34) + ' ||');
      writeLn('||-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-||');

    end;

    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    {|  My AntiBan procedure is composed by 11 diferent moves and they can be  |}
    {|  executed with a probability of 1%, to ensure that the Script isn't     |}
    {|  much repetitive, and to obtain a best mining performance.              |}
    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    Procedure AntiBan;
    begin

      if(not LoggedIn)then
        Exit;

      case random(1100) of
        0:
          PickUpMouse;
        21:
          HoverSkill('random', False);
        71:
        begin
          RandomAngle(True);
          SetAngle(SRL_ANGLE_HIGH);
        end;
        98:
          HoverSkill('Mining', False);
        111:
        begin
          MakeCompass(random(90));
          ClickNorth(SRL_ANGLE_HIGH);
        end;
        123:
        begin
          MakeCompass('E');
          ClickNorth(SRL_ANGLE_HIGH);
        end;
        137:
          RandomRClick;
        160:
        begin
          RandomRClick;
          HoverSkill('Mining', False);
        end;
        179:
          RandomMovement;
        193:
          SleepAndMoveMouse(200 + Random(100));
        210:
          ExamineInv;
      end;

    end;

    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    {|  The way that i have chosen to walk was the DTM walking, in order to    |}
    {|  obtain the best performance, while going to the mine or bank. This     |}
    {|  procedure uses as arguments a DTM path and, at the same time, another  |}
    {|  DTM path which is paralel to the original Path, to ensure that the     |}
    {|  script will not fail any point. The 3th argument is a Flag that is     |}
    {|  activated only if the original path fails at all, in order to start    |}
    {|  from the begining, find where you are and then try to go to the        |}
    {|  destination again.                                                     |}
    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    Procedure WalkingDTM(DTMs:TIntegerArray;SafeDTMs:TIntegerArray;SafeFlag:Integer);
    Var

      i,x,y,WalkCounter,SafeLogout,ApplySafePath:integer;
      Position,Position1:boolean;

    begin

      if(not LoggedIn) then
        Exit;

      if((SafeFlag = 1) and InvFull) then
      begin
        FreeDTMs(DTMs);
        FreeDTMs(SafeDTMs);
        DTMs := [DTMFromString('mggAAAHicY2NgYChjYmCoAOJ6IO4H4tlAPBOIM4FynlDsA8SJQFwIxPrammBsZWbMUFtZxNDVUsdQA6QFgXLYMCMODAEAzT0LzA=='),
                 DTMFromString('mggAAAHicY2NgYMhjYmCoA+JKIO4H4mlAPAOIC4ByhkBsBMSmQOwKxJFArK+tCcf11cUMzfXlDM115QyCQDlsmBEHhgAAlrgLLg=='),
                 DTMFromString('mggAAAHicY2NgYEhjYmCoAeJaIG4G4h4gngjE9UC5UCAWB2IxBgi/GYiLszIY9LU14bgwK4YhwMuBQRAohw0z4sAQAABzGApg'),
                 DTMFromString('mggAAAHicY2NgYEhiYmAoAOI5QDwXiCuBuAGI44BywUAcBsSRQJwJxNpAXJyVAcaFWTEMAV4OYLa+tiaDIFAOG2bEgSEAAOEyC9o='),
                 DTMFromString('mggAAAHicY2NgYEhmYmDoAeI1QLwOiJuhOAYolwTEfkAcBKVLgdjNyY6hOCuDoTArhiHAywHMjtVnYxAEymHDjDgwBAAA7yQL4g=='),
                 DTMFromString('mggAAAHicY2NgYChiYmAoAeLJQLwQiKcD8RIgzgHKBQCxJxDHAnEuEKsAcXFWBgqO1Wdj0NfWZBAEymHDjDgwBAAA+RkL8A=='),
                 DTMFromString('mggAAAHicY2NgYChkYmAoAuISIF4ExFOBeCYQZwLl/IHYBog9gdgQiKOBODMxjqE4KwMFx+qzMQgC5bBhRhwYAgD5www9'),
                 DTMFromString('mggAAAHicY2NgYIhkYmAoBOJiIC4D4sVAPBOIY4FyEUDsCMS6QGwJxN5AXJSewZCTlASmYThGh41BECiHDTPiwBAAANE5C9c='),
                 DTMFromString('mggAAAHicY2NgYMhlYmAoA+JeIO4H4m1APAmIs4ByQUAcAMTmQOwKxKpAnBEXx1CUnsGQk5QEpmN02MC0IFAOG2bEgSEAAPJYDBg='),
                 DTMFromString('mggAAAHicY2NgYEhjYmCoBOKJQDwViGcA8QYgTgLKOQBxCRDbALEKECcAcVF6BhiXRBgy5CWngNnRgjwMgkA5bJgRB4YAAPccDA8='),
                 DTMFromString('mggAAAHicY2NgYIhgYmDIB+J5QNwGxAuBOA2I04FyAUCcBMR6QKwNxPZA7GBhyZCVkMCQ5qvNUJSewZCXnMJgpqvHIAiUw4YZcWAIAACPkQri')];
        SafeDTMs := [DTMFromString('mggAAAHicY2NgYPjDyMAgycTAoADE0kDMCMQcQPwYKHcTiI8A8UYgXgTEK4DYxc6Ooa6qnKGjuYGhrbGOwdXBhUFPU5tBBCiHDTPiwBAAACDMDO4='),
                     DTMFromString('mggAAAHicY2NgYPjIyMDAycTAIAjEkkDMAMTfgWK3gMyzQLwDiKcDcTMQ1wCxvaUlQ1RIMENNRSlDa30Ng56mNoOrgwuDCFAOG2bEgSEAABBrDIU='),
                     DTMFromString('mggAAAHicY2NgYLjDyMDAx8TAIAbEEkD8FsgXBtIHgXLHgfgoEJ8C4ltAPBuIvZ1dGQI8nRkKM+PBdHFmNkN5YT6DCFAOG2bEgSEAAFsgDZU='),
                     DTMFromString('mggAAAHicY2NgYHjKyMDwF4iZmRgYNIBYnwnCPgyU2wHEF4F4JxDvA+IHQFycmQ3HhZnxDAGezgzZSckMIkA5bJgRB4YAALhJDos='),
                     DTMFromString('mggAAAHicY2NgYHjIyMDwD4hFmRgYLIDYCoi5gHgHUG47EB8F4rVAvAGIbwJxflo6Q3FmNhgXZsYzBHg6M8TocjCIAOWwYUYcGAIAkxcN2Q=='),
                     DTMFromString('mggAAAHicY2NgYPjKyMDAyMTAIALEmkCsBcTyQHwWKLcZig8B8TUgXgXExZnZWLEIUA4bZsSBIQAAbV0OKw=='),
                     DTMFromString('mggAAAHicY2NgYPjJyMDwF4j/AbEwEwODLhDrAPERoNwGIJ4OxFOBeDEQ7wDi3JRUhuykZIbizGwULAKUw4YZcWAIAAAYIg9r'),
                     DTMFromString('mggAAAHicY2NgYHjAyMDwD4gZmIAIiA2AWB+IdwCFNgHxHCDuAOKpQLwKiIszsxlyU1LBNDIWAcphw4w4MAQAAIl5DjQ='),
                     DTMFromString('mggAAAHicY2NgYPjOyMDwC4hFmRgYJKH4NZB/GSi3AYrnAnErlF2cmQ3GmQmJDNlJyXC+CFAOG2bEgSEAAPbRDyw='),
                     DTMFromString('mggAAAHicY2NgYHjOyMDwDYh/ALEwEwODGBC/ALJ3AuX2AfEMIJ4CxE1APA2I8zKz4TgrLR3OFgHKYcOMODAEAAA4pg+v'),
                     DTMFromString('mggAAAHicY2NgYHjMyMDwBYg5mRgYVID4LZCtDKRPAeW2A/EUIO4D4mVAfBSIbaxsGDJSUhnyMrMZstLSGfR19RkKokwYRIBy2DAjDgwBAItJDZU=')];
      end;

      if((SafeFlag = 1) and (not InvFull)) then
      begin
        FreeDTMs(DTMs);
        FreeDTMs(SafeDTMs);
        DTMs := [DTMFromString('mggAAAHicY2NgYHjGyMBwAYhvAPE3IOZjYmD4AqQ3A+VOAPF8IO4H4oNAvAGIs3NzGUwsLRn0TUzA7PhgAzAtCJTDhhlxYAgAAC3ZDwg='),
                 DTMFromString('mggAAAHicY2NgYLjJyMBwHIj3AvEXIL4DxJtBGCi3E4hXAPFpIJ4CxBeAOCY+niE7N5dB38SEITXCGMy2tLNjEATKYcOMODAEAABjJg98'),
                 DTMFromString('mggAAAHicY2NgYLjEyMBwGoh3A/EyIH4BxGuBeC5Q7jAU3wTii0C8CYizc3Ph2MTSkiHCV5dB38SEQRAohw0z4sAQAABcWA9p'),
                 DTMFromString('mggAAAHicY2NgYHjOyMBwFIgPAvFmIF4KxA+BeDtQbg8QP4TiC0D8EYhT09MZsnNz4VjfxIQhNcKYQRAohw0z4sAQAAC3ORCe'),
                 DTMFromString('mggAAAHicY2NgYDjHyMBwDIjXAfFsKLsbiBcB5fYC8X4gfgrEX4H4ChBn5+YyJKelgmkQjg82YNA3MWEQBMphw4w4MAQAAG9/D+k='),
                 DTMFromString('mggAAAHicY2NgYLjIyMBwCoiPAvEqIP4MxH9BbKDcISC+BcT3gPgcEG8F4uzcXDBOz8wE02HGPGBaECiHDTPiwBAAANQPEPw='),
                 DTMFromString('mggAAAHicY2NgYHjEyMBwDIiPAvEhIH4HxD+AeCdQbh8QXwTi10B8H4iPA3FqejpDemYmQ3ZuLpgOM+YBswWBctgwIw4MAQDphxEr'),
                 DTMFromString('mggAAAHicY2NgYHjJyMBwAog3AvEGIL4BxI+AeC1Q7iAQHwLiq0D8GIjPALGjqytDdm4uHIcZ84BpQaAcNsyIA0MAAKNhEG0='),
                 DTMFromString('mggAAAHicY2NgYLjEyMDwAohfA/FRIF4FxNOAeB5Q7igQnwTiW0B8HogvArGGvj5DZm4ig4evK0N2bi4cCwLlsGFGHBgCAIcHEC8='),
                 DTMFromString('mggAAAHicY2NgYDjOyMDwBIoPAPFSID4JxEuAck+A+DkQ/wLit0B8C4h1NbQY8tJiGHzdHBgK0jLA2M3egUEQKIcNM+LAEAAAmQAQKQ==')];
        SafeDTMs := [DTMFromString('mggAAAHicY2NgYPjCyMDAxsTA8BJIswNpeSaI2EGg3BYg3gDEc4D4AhDPBOLczCwwNtA3ANPpIfpgWgQohw0z4sAQAACrdg4u'),
                     DTMFromString('mggAAAHicY2NgYPjGyMDwEIivADEfEwPDJyj/IFDuPBDvBuL7QLwKiJcBcW5mFhgb6Bsw5EcZw/kiQDlsmBEHhgAAgMcQHQ=='),
                     DTMFromString('mggAAAHicY2NgYLjDyMBwBoiPA/EDIP4BxHuAeCNQbj0QXwfi00D8AoiPAnFuZhYcZ6alMeRHGTMY6Bsw4AKMODAEAAC1oxBF'),
                     DTMFromString('mggAAAHicY2NgYPjDyMDwAIhvA/FpIN4HxN+B+BhQ7hwQPwfiD0B8D4gZgeLpKSkMuZlZDMkJCWDaQN+AIT/KmEEEKI8NM+LAEAAAvF8Qag=='),
                     DTMFromString('mggAAAHicY2NgYHjAyMBwD4gPAvEaIF4ExLeAeDNQ7iQQnwfiL0B8H4iZgeK5mVkMmWlpYBqEDfQNGNJD9BlEgPLYMCMODAEAcaoPwg=='),
                     DTMFromString('mggAAAHicY2NgYHjEyMBwG4hvAvEeIP4CxMxMDAw7gXK3gPglEL8HYnaQGiCdm5kFxukpKWDaQ4CHIUyXnUEEKIcNM+LAEAAAOfkO/g=='),
                     DTMFromString('mggAAAHicY2NgYPjGyMBwHYhvAPFVIP4LxLuBeB9Q7gwQ3wHir0D8Eoj/A3FuZhZDekoKmAbhMF12MC0ClMOGGXFgCAAAHxsRuQ=='),
                     DTMFromString('mggAAAHicY2NgYPjKyMBwA4j3A/EeKH4IxHuBcueA+BoQvwTiv0D8GYh9fbwZMtPSGHIzs8AYxA7TZWfABRhxYAgAAMqiEIo='),
                     DTMFromString('mggAAAHicY2NgYLjDyMBwEIiXAPExIL4AxB+BeBFQ7goQPwZiRiD/HZC+BcSh4eEMuZlZYBymyw6mvTydGESActgwIw4MAQBe2A+Y'),
                     DTMFromString('mggAAAHicY2NgYLjMyMCwF4jPAfFXIP4FxLeBeAFQ7hsQ8wLZP4D0HyA+BMQOjg4MuZlZYJydGcfg5enEYO/gzCAClMOGGXFgCAAAlAsQFw==')];
      end;

      MarkTime(SafeLogout);
      for i:=0 to High(DTMs) do
      begin

        if(not LoggedIn) then
          break;

        if((SafeFlag=1) and (not IsMoving) and (TimeFromMark(SafeLogout)>120000)) then
        begin
          ClearDebug;
          writeln('Could Not Go To The Bank.');
          Report;
          Logout;
          Exit;
        end;

        MarkTime(WalkCounter);
        repeat
          Position := FindDTM(DTMs[i],x,y,MMX1,MMY1,MMX2,MMY2);
          Position1 := FindDTM(SafeDTMs[i],x,y,MMX1,MMY1,MMX2,MMY2);
        until((Position=True) or (TimeFromMark(WalkCounter)>3000));

        wait(500);
        if(FindDTM(DTMs[i],x,y,MMX1,MMY1,MMX2,MMY2) or (Position=True)) then
        begin
          Mouse(x,y,0,0,True);

          if(RunEnergy(30)) then
            SetRun(True);

          MarkTime(WalkCounter);
          if(i<High(DTMs)) then
          begin
            wait(200);
            repeat
              wait(50);
            until(FindDTM(DTMs[i+1],x,y,MMX1,MMY1,MMX2,MMY2) or (TimeFromMark(WalkCounter)>3000));

            if(IsMoving or FindDTM(DTMs[i+1],x,y,MMX1,MMY1,MMX2,MMY2) or FindDTM(SafeDTMs[i+1],x,y,MMX1,MMY1,MMX2,MMY2)) then
              MarkTime(ApplySafePath);
          end;
        end
        else
        begin
          MarkTime(WalkCounter);
          repeat
            Position := FindDTM(SafeDTMs[i],x,y,MMX1,MMY1,MMX2,MMY2);
          until(Position1 or FindDTM(SafeDTMs[i],x,y,MMX1,MMY1,MMX2,MMY2) or (TimeFromMark(WalkCounter)>3000));
          if(Position) then
          begin
            Mouse(x,y,0,0,True);
            writeln('Walking Safe DTM Point Applied.');
          end
          else
          begin
            if((SafeFlag=0) and (not IsMoving)) then
            begin
              writeln('Walking Safe Path Applied. Please Wait...');
              WalkingDTM(DTMs,SafeDTMs,1);
              i := High(DTMs);
            end;
          end;
        end;

      end;

    FreeSRLBitmaps;

    end;

    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    {|  GoToMine is the procedure that sends the original Mine's path and a    |}
    {|  paralel path to the WalkingDTM procedure.                              |}
    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    Procedure GoToMine;
    Var

      DTMs,SafeDTMs:TIntegerArray;

    begin

      if(not LoggedIn) then
        Exit;

      ClickNorth(SRL_ANGLE_HIGH);
      DTMs := [DTMFromString('mggAAAHicY2NgYHjHyMBwH4gfAPEfIP4PxK+BeANQ7jAQzwbiZUDcAcRtQFyUmc5gqq8LxunxsWA+CIsA5bBhRhwYAgCN3w/r'),
               DTMFromString('mggAAAHicY2NgYPjIyMDwEIgvA/FnIH4MxFeB+DRQ7jwQ7wbiFUC8DIjvAXFuZhYYG+gboLBFgHLYMCMODAEAwtcQeg=='),
               DTMFromString('mggAAAHicY2NgYLjLyMCwB4hPAPF+ID4DxA+BeCNQ7ggQXwfiV0C8HojPA3FuZhaDgb4BCp2ckMAgApTDhhlxYAgAAIiaEA0='),
               DTMFromString('mggAAAHicY2NgYPjNyMDwCIgfAPFJIN4LxOeB+ChQ7iQQvwDiD0B8F8rPzcwC4/SUFDBtoG8ApkWActgwIw4MAQACCxFn'),
               DTMFromString('mggAAAHicY2NgYHjAyMBwAIj3AfFaIF4MxL+BeCtQ7hwQvwTir0B8D4g/AXFuZhYYJyckgGk9XT0Gf0FeBhGgHDbMiANDAACnIhA+'),
               DTMFromString('mggAAAHicY2NgYHjCyMBwB4hvAvE+IP4KxLuAeCdQ7ioQvwTiN0DMDhT7D6RzM7PAOD0lBUx7CPCAaRGgHDbMiANDAAC5jBCO'),
               DTMFromString('mggAAAHicY2NgYPjJyMBwA4ivA/FVIN4JxGxMDAz7gXLngPghEH8DqQPia0Ccm5nFkJmWhkKDsAhQDhtmxIEhAADeXhFl'),
               DTMFromString('mggAAAHicY2NgYPjAyMBwGYgPAPFeIH4NxDuB+AhQ7goQXwfiV0D8CIgZgOLOjk4MmWlpDLmZWXAM4osApbFhRhwYAgCtihCb'),
               DTMFromString('mggAAAHicY2NgYLjNyMDwDog/APF5IN4HxEuBeCVQ7joQ3wHit0B8A4gfAbGDowNDdmYcg5enE0NuZhYciwDlsGFGHBgCANPlEQE='),
               DTMFromString('mggAAAHicY2NgYDjCyMBwEogfAfErIN4CxPuAeBpQbgMQPwfiN0D8BIj/ArGlpRGDs5MVQ0FuNIO/rz1DUW46GIsA5bBhRhwYAgCW5hBS')];
      SafeDTMs := [DTMFromString('mggAAAHicY2NgYPjCyMDAxsTA8BJIswNpeSaI2EGg3BYg3gDEc4D4AhDPBOLczCwwNtA3ANPpIfpgWgQohw0z4sAQAACrdg4u'),
                   DTMFromString('mggAAAHicY2NgYPjGyMDwEIivADEfEwPDJyj/IFDuPBDvBuL7QLwKiJcBcW5mFhgb6Bsw5EcZw/kiQDlsmBEHhgAAgMcQHQ=='),
                   DTMFromString('mggAAAHicY2NgYLjDyMBwBoiPA/EDIP4BxHuAeCNQbj0QXwfi00D8AoiPAnFuZhYcZ6alMeRHGTMY6Bsw4AKMODAEAAC1oxBF'),
                   DTMFromString('mggAAAHicY2NgYPjDyMDwAIhvA/FpIN4HxN+B+BhQ7hwQPwfiD0B8D4gZgeLpKSkMuZlZDMkJCWDaQN+AIT/KmEEEKI8NM+LAEAAAvF8Qag=='),
                   DTMFromString('mggAAAHicY2NgYHjAyMBwD4gPAvEaIF4ExLeAeDNQ7iQQnwfiL0B8H4iZgeK5mVkMmWlpYBqEDfQNGNJD9BlEgPLYMCMODAEAcaoPwg=='),
                   DTMFromString('mggAAAHicY2NgYHjEyMBwG4hvAvEeIP4CxMxMDAw7gXK3gPglEL8HYnaQGiCdm5kFxukpKWDaQ4CHIUyXnUEEKIcNM+LAEAAAOfkO/g=='),
                   DTMFromString('mggAAAHicY2NgYPjGyMBwHYhvAPFVIP4LxLuBeB9Q7gwQ3wHir0D8Eoj/A3FuZhZDekoKmAbhMF12MC0ClMOGGXFgCAAAHxsRuQ=='),
                   DTMFromString('mggAAAHicY2NgYPjKyMBwA4j3A/EeKH4IxHuBcueA+BoQvwTiv0D8GYh9fbwZMtPSGHIzs8AYxA7TZWfABRhxYAgAAMqiEIo='),
                   DTMFromString('mggAAAHicY2NgYLjDyMBwEIiXAPExIL4AxB+BeBFQ7goQPwZiRiD/HZC+BcSh4eEMuZlZYBymyw6mvTydGESActgwIw4MAQBe2A+Y'),
                   DTMFromString('mggAAAHicY2NgYLjMyMCwF4jPAfFXIP4FxLeBeAFQ7hsQ8wLZP4D0HyA+BMQOjg4MuZlZYJydGcfg5enEYO/gzCAClMOGGXFgCAAAlAsQFw==')];
      WalkingDTM(DTMs,SafeDTMs,0);
      FreeDTMs(DTMs);
      FreeDTMs(SafeDTMs);

      repeat
        AntiBan;
        wait(RandomRange(250,300));
      until(not IsMoving);

    end;

    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    {|  GoToBank is the procedure that sends the original Bank's path and a    |}
    {|  paralel path to the WalkingDTM procedure.                              |}
    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    Procedure GoToBank;
    Var

      DTMs,SafeDTMs:TIntegerArray;

    begin

      if(not LoggedIn) then
        Exit;

      ClickNorth(SRL_ANGLE_HIGH);
      DTMs := [DTMFromString('mggAAAHicY2NgYKhnYmCYDMSzgHgaEDcDcQMQVwPlKoE4BYj9gNgdiO2BWE9Tm6GsKJ+hoaaCobW+hiEhOpIhJjyUQQQohw0z4sAQAAAwygzr'),
               DTMFromString('mggAAAHicY2NgYPjOyMDAycTAIAjEUkDMCMR/gWJXgXKXgHgHEC8G4hYgrgXiAC8vhlB/P4aailKGtsY6Bj1NbYbwoEAGEaAcNsyIA0MAADLJDPs='),
               DTMFromString('mggAAAHicY2NgYHjOyMAgwgTBb4FsDiAtBsRHGCD4BBDfAuJNQDwJiIszsxkKM+MZAjydwezslGSGsqJ8BhGgHDbMiANDAACRGg5D'),
               DTMFromString('mggAAAHicY2NgYHjGyMCgwwTBTED8F8j/AcSHgHK7gHgvEJ8H4u1A/BSIizOzGQoz4xkCPJ3BbBCO0eVgEAHKYcOMODAEAADt3w7i'),
               DTMFromString('mggAAAHicY2NgYHjEyMDwA4hFmRgYLKCYDYi3A+V2AvERIF4LxBuAeDUQF2dmw3FhZjxDgKczmC0ClMOGGXFgCAAAqwIOYQ=='),
               DTMFromString('mggAAAHicY2NgYPjOyMDwB4h5mRgYtIBYHohlgfgsUG4zFB8A4itAvBaIizOzUXCMLgeYFgHKYcOMODAEAACxrA5d'),
               DTMFromString('mggAAAHicY2NgYPjJyMDwB4j/AbEwEwODMhDrAfERoNx6IJ4GxFOBeBsQLwTi3JRUhuLMbDiO0eUA0yJAOWyYEQeGAADt4g69'),
               DTMFromString('mggAAAHicY2NgYHjIyMDwD4j/ArEaEwMDExAbAPEOoNxGIJ4HxEuBuB2IJwNxcWY2Q25KKpiO0eUA0yAsApTDhhlxYAgAAMteDms='),
               DTMFromString('mggAAAHicY2NgYPjKyMDwF4jFmBgYxIFYEoj1gfgcUG4jEK8H4tlA3ArEF4A4NSaWoTgzmyEzIRFMg3CoIB+DCFAOG2bEgSEAAHu+DaU='),
               DTMFromString('mggAAAHicY2NgYHjKyMDwFYh/ALEoEwODGBDrA/EuoNweIJ4OxJOBuAmItwFxXmY2HGekpILpAEE+BhGgHDbMiANDAADEvA46'),
               DTMFromString('mggAAAHicY2NgYLjLyMDwGYhZmBgYOIFYCYhtgPgkUG4rEO8E4qlAPAGINwOxjZUNQ1pSMkNeZjYYZ6WlM4QL8zOIAOWwYUYcGAIAO1EM6g==')];
      SafeDTMs := [DTMFromString('mggAAAHicY2NgYPjDyMAgycTAoADE0kDMCMQcQPwYKHcTiI8A8UYgXgTEK4DYxc6Ooa6qnKGjuYGhrbGOwdXBhUFPU5tBBCiHDTPiwBAAACDMDO4='),
                   DTMFromString('mggAAAHicY2NgYPjIyMDAycTAIAjEkkDMAMTfgWK3gMyzQLwDiKcDcTMQ1wCxvaUlQ1RIMENNRSlDa30Ng56mNoOrgwuDCFAOG2bEgSEAABBrDIU='),
                   DTMFromString('mggAAAHicY2NgYLjDyMDAx8TAIAbEEkD8FsgXBtIHgXLHgfgoEJ8C4ltAPBuIvZ1dGQI8nRkKM+PBdHFmNkN5YT6DCFAOG2bEgSEAAFsgDZU='),
                   DTMFromString('mggAAAHicY2NgYHjKyMDwF4iZmRgYNIBYnwnCPgyU2wHEF4F4JxDvA+IHQFycmQ3HhZnxDAGezgzZSckMIkA5bJgRB4YAALhJDos='),
                   DTMFromString('mggAAAHicY2NgYHjIyMDwD4hFmRgYLIDYCoi5gHgHUG47EB8F4rVAvAGIbwJxflo6Q3FmNhgXZsYzBHg6M8TocjCIAOWwYUYcGAIAkxcN2Q=='),
                   DTMFromString('mggAAAHicY2NgYPjKyMDAyMTAIALEmkCsBcTyQHwWKLcZig8B8TUgXgXExZnZWLEIUA4bZsSBIQAAbV0OKw=='),
                   DTMFromString('mggAAAHicY2NgYPjJyMDwF4j/AbEwEwODLhDrAPERoNwGIJ4OxFOBeDEQ7wDi3JRUhuykZIbizGwULAKUw4YZcWAIAAAYIg9r'),
                   DTMFromString('mggAAAHicY2NgYHjAyMDwD4gZmIAIiA2AWB+IdwCFNgHxHCDuAOKpQLwKiIszsxlyU1LBNDIWAcphw4w4MAQAAIl5DjQ='),
                   DTMFromString('mggAAAHicY2NgYPjOyMDwC4hFmRgYJKH4NZB/GSi3AYrnAnErlF2cmQ3GmQmJDNlJyXC+CFAOG2bEgSEAAPbRDyw='),
                   DTMFromString('mggAAAHicY2NgYHjOyMDwDYh/ALEwEwODGBC/ALJ3AuX2AfEMIJ4CxE1APA2I8zKz4TgrLR3OFgHKYcOMODAEAAA4pg+v'),
                   DTMFromString('mggAAAHicY2NgYHjMyMDwBYg5mRgYVID4LZCtDKRPAeW2A/EUIO4D4mVAfBSIbaxsGDJSUhnyMrMZstLSGfR19RkKokwYRIBy2DAjDgwBAItJDZU=')];
      WalkingDTM(DTMs,SafeDTMs,0);
      FreeDTMs(DTMs);
      FreeDTMs(SafeDTMs);

      repeat
        AntiBan;
        wait(RandomRange(250,300));
      until(not IsMoving);

    end;

    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    {|  The name tells you everything, ItemDeposit procedure checks if you     |}
    {|  have the pickaxe in your 1st inventory slot; if you haven't, it will   |}
    {|  deposit everything that you have in the inventory, if you have the     |}
    {|  pickaxe at the 1st inventory slot it just deposit from the 2nd slot    |}
    {|  until the end. If something goes wrong, a safe case will guarantee     |}
    {|  that you don't get caught, doing logout.                               |}
    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    Procedure ItemDeposit;
    Var

      DepositCounter,x,y,i,BankDTM,BankDTM1:Integer;
      SafePointDTMs:TIntegerArray;
      Bank, Bank1:boolean;

    begin

      if (not LoggedIn) then
        Exit;

      SetAngle(SRL_ANGLE_HIGH);

      BankDTM := DTMFromString('mggAAAHicY2NgYGBmZGD4AqQFGCEYxL4PxOeB+CYUn4Ti00DclWfDUJuTwZCXEs8wffJkhoriQgZOdgYGfgbsmBEHhgAA9e4PEQ==');
      BankDTM1 := DTMFromString('mggAAAHicY2NgYNgMxJeA+CgQzwPipUB8EIjPAfFZID4A5d+E4o5cawZ9NRGG2hQzhugAV4b89BSGvJR4Bn6gHDbMiANDAABSXw+O');
      SafePointDTMs := [DTMFromString('mggAAAHicY2NgYIhkYmBIB+IiIJ4LxC1QOhso5wKSB+JUIDYGYn0gdrCwZDDT1WMoSs9gyAnSBdN5ySkM/EA5bJgRB4YAAJWpCxY='),
                        DTMFromString('mggAAAHicY2NgYEhnYmBIBeJSIJ4LxLuAuAmIc4FyrkAcCcSpQOwHxKZAbKytw2Cmq8dQlJ7BkBOky+DPzw1m8wPlsGFGHBgCAHjgCnE='),
                        DTMFromString('mggAAAHicY2NgYAhkYmBIA+IyIJ4HxPOBuBKIM4ByLkAcAcT6QJwCxPZAbKarB8ZF6RkMeckpDGm+2gy+bq4MgkA5bJgRB4YAAHAuCoY='),
                        DTMFromString('mggAAAHicY2NgYEhmYmBIAeJ8IJ4DxC1APA+Ic4ByLkAcBsQpQGwMxPpAbGFgyGCmq8eQlZDAkOarzVCUnsGQl5zCIAiUw4YZcWAIAACIAwrn')];
      repeat
        AntiBan;
        wait(100);
        Bank := FindDTM(BankDTM,x,y,MSX1,MSY1,MSX2,MSY2);
        Bank1 := FindDTM(BankDTM1,x,y,MSX1,MSY1,MSX2,MSY2);
      until(not IsMoving);

      Bank := FindDTM(BankDTM,x,y,MSX1,MSY1,MSX2,MSY2);
      Bank1 := FindDTM(BankDTM1,x,y,MSX1,MSY1,MSX2,MSY2);
      i := 0;
      MarkTime(DepositCounter);
      repeat
        if(not LoggedIn) then
          break;

        if((TimeFromMark(DepositCounter)>60000) and (TimeFromMark(DepositCounter)<240000)) then
        begin
          writeln('Could Not Find The Bank. Aplying The Safe Path. Please wait...');
          GoToBank;
        end;

        if (TimeFromMark(DepositCounter)>300000) then
        begin
          ClearDebug;
          writeln('Could Not Find The Bank.');
          Report;
          Logout;
          Exit;
        end;

        if(Bank or Bank1 or FindDTM(BankDTM,x,y,MSX1,MSY1,MSX2,MSY2) or FindDTM(BankDTM1,x,y,MSX1,MSY1,MSX2,MSY2)) then
          Mouse(x,y,0,0,True)
        else
          OpenBankNPC;
        Wait(RandomRange(3000,3500));

        if (PinScreen) then
        begin
          repeat
            InPin(Players[0].Pin);
          until (BankScreen or (not LoggedIn));
          wait(RandomRange(500,1000));
        end;

        if(((TimeFromMark(DepositCounter)>15000) and (TimeFromMark(DepositCounter)<45000)) or ((TimeFromMark(DepositCounter)>240000) and (TimeFromMark(DepositCounter)<285000))) then
        begin
          ClearDebug;
          writeln('Could Not Find The Bank. Going To The Safe Point.');
          FindDTM(SafePointDTMs[i],x,y,MMX1,MMY1,MMX2,MMY2);
          Mouse(x,y,0,0,True);
          repeat
            wait(100);
          until(not IsMoving);
          i := i + 1;
          if(i>3) then
            i := 0;
        end;
      until(BankScreen or PinScreen);

      ClearDebug;
      writeln('The Bank Has Been Found.');

      MMouse(573,228,2,2);
      wait(250);
      if(IsUpText('pic')) then
        Deposit(2,28,True)
      else
        DepositAll;
      CloseBank;
      FreeDTM(BankDTM);
      FreeDTM(BankDTM1);

      if (RunEnergy(30)) then
        SetRun(True);

      IncEx(DepositNumber,1);

    end;

    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    {|  If you have chosen "RocksToMine := 0;" at line 42, this procedure will |}
    {|  make you mine Gold during 1 minute, only when you don't                |}
    {|  find Adamantite during 25 secounds.                                    |}
    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    Procedure MineGold(X1:TIntegerArray;Y1:TIntegerArray);
    Var

      x,y,i,j,FindRock,MineCounter,FinishGold,GCounter,AdamantiteCounter,ToGoldDTM:Integer;

    begin

      if(not LoggedIn) then
        Exit;

      ToGoldDTM := DTMFromString('mggAAAHicY2NgYMhkYmAoAeIaIO4D4qlAnAPE3UC5QCAOBeIYIM4F4kQgtrdyYNDXMQLjhpo6hub6JjBbACiHDTPiwBAAAKV4Cxo=');

      FindDTM(ToGoldDTM,x,y,MMX1,MMY1,MMX2,MMY2);
      Mouse(x,y,0,0,True);
      wait(500);
      repeat
        FindNormalRandoms;
        AntiBan;
        wait(50);
      until(not IsMoving);

      MarkTime(FinishGold);
      GCounter := 0;
      AdamantiteCounter := 0;
      if(FindObjCustom(x,y,['old'],[5033981,4967930,4239061,4371419,4835057],3)) then
      begin
        repeat
          Mouse(x,y,0,0,True);
          i := InvCount + 1;
          GCounter := GCounter + 1;
          if(not LoggedIn) then
            break;
          wait(500);
          repeat
            FindNormalRandoms;
            AntiBan;
            wait(50);
          until(not IsMoving);

          MarkTime(FindRock);
          MarkTime(MineCounter);
          j := 0;
          repeat

            MMouse(X1[j],Y1[j],2,2);
            j := j + 1;
            if(j > 3) then
              j := 0;
            wait(1000);
            if(IsUpText('old')) then
              MineCounter := GetSystemTime;

          until((i = InvCount) or (TimeFromMark(MineCounter)>5000) or (TimeFromMark(FindRock)>20000) or InvFull);

          if((TimeFromMark(MineCounter)>5000) or (TimeFromMark(FindRock)>20000)) then
            GCounter := GCounter - 1;

          repeat
            if(FindObjCustom(x,y,['Ada'],[6517347,7636339,7307375,6056540,6846568,8162939,8558210,8031610,8426624,6648933],3)) then
            begin
              Mouse(x,y,0,0,True);
              AdamantiteCounter := AdamantiteCounter + 1;
              i := InvCount + 1;
              wait(500);
              repeat
                wait(50);
              until(not IsMoving);

              repeat
                ClearDebug;
                AntiBan;
                FindNormalRandoms;

                MarkTime(FindRock);
                MarkTime(MineCounter);
                j := 0;
                repeat

                  MMouse(X1[j],Y1[j],2,2);
                  j := j + 1;
                  if(j > 3) then
                    j := 0;
                  wait(1000);
                  if(IsUpText('ite')) then
                    MineCounter := GetSystemTime;

                until((i = InvCount) or (TimeFromMark(MineCounter)>5000) or (TimeFromMark(FindRock)>60000));

                if((TimeFromMark(MineCounter)>5000) or (TimeFromMark(FindRock)>60000)) then
                  AdamantiteCounter := AdamantiteCounter - 1;

              until((TimeFromMark(MineCounter)>1000) or (i = InvCount) or (TimeFromMark(FindRock) > 60000));
            end;
          until((not FindObjCustom(x,y,['Ada'],[6517347,7636339,7307375,6056540,6846568,8162939,8558210,8031610,8426624,6648933],3)) or InvFull)
        until((not FindObjCustom(x,y,['old'],[5033981,4967930,4239061,4371419,4835057],3)) or (TimeFromMark(FinishGold)>60000) or InvFull);
      end;

      IncEx(GoldCounter,GCounter);
      IncEx(AddyCounter,AdamantiteCounter);
      FreeDTM(ToGoldDTM);

    end;

    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    {|  Every time that don't find Adamantite, you will moving in 3            |}
    {|  diferent points. If you have chosen "RocksToMine := 0;", when you      |}
    {|  don't find Adamantite you will move every 5 secounds to a different    |}
    {|  point. If you have chosen "RocksToMine := 1;", you will move every     |}
    {|  15 secounds. Finally, if you have chosen "RocksToMine := 2;", you will |}
    {|  move every 20 secounds. If in 4 minutes you can't find any Adamantite, |}
    {|  a safe case will guarantee that you make logout.                       |}
    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    Function FindRocks(AddyFlag:Integer;X1:TIntegerArray;Y1:TIntegerArray):Integer;
    Var

      SafeLogout,ChangeGold,RuniteCounter,x,y,k,k1,ChangePoint,r,MineCounter,FindRock,j:Integer;
      FindAddyDTMs,FindAddyDTMs1:TIntegerArray;

    begin

      if(not LoggedIn) then
        Exit;

      case RocksToMine of
        0:
        begin
          k := 5000;
          k1 := 25000;
        end;
        1:
          k := 15000;
        2:
          k := 20000;
      end;

      FindNormalRandoms;
      MarkTime(SafeLogout);
      MarkTime(ChangeGold);
      RuniteCounter := 0;
      repeat

        if(not LoggedIn) then
          break;

        FindAddyDTMs := [DTMFromString('mggAAAHicY2NgYChkYmCoBuIWIJ4OxHlA3AfENkA5TSDWA2IrII4HYl0gdnS0YXB0cmTQ09dmKCvPZ3C0t2HIyk5m4AfKYcOMODAEAABRFAop'),
                         DTMFromString('mggAAAHicY2NgYMhjYmAoBOJaIO4A4slAPBuII4FylkCsAcQ6QGwOxE4gMQsTBkcnRzCOjQtnKCvPZ6ioLGTgB8phw4w4MAQAAH9jCuE='),
                         DTMFromString('mggAAAHicY2NgYKhnYmAoAOJJQDwDiPOBeBYQ6wLlLIHYGIhtgdgNiD2BOCTUn8HRyZGhpDSXoaKykCE8MpShtDyfgR8ohw0z4sAQAADGUAvO')];
        FindAddyDTMs1 := [DTMFromString('mggAAAHicY2NgYKhkYmCoB+IOIJ4GxAVAPAeIrYByGkCsA8QWQFwIxM5A7ObuyBAY7MMQGxfOkJefzuDo5MhQVV3MwA+Uw4YZcWAIAACmhQtP'),
                          DTMFromString('mggAAAHicY2NgYMhnYmAoBeJ6IM4B4m4gngzEmUA5UyC2AmIvIPYE4iAgdnGxYYiODWNISo4Es6trChmaWioY+IFy2DAjDgwBALy7C7c='),
                          DTMFromString('mggAAAHicY2NgYGhmYmAoBOJ8IJ4GxDOAeC4QawHlrIE4AYjNgNgJiH2BODwylMHR0YbB2cmeoaQ0l6G8spChuraEgR8ohw0z4sAQAADJsAvV')];
        if(InvFull) then
          break;

        case AddyFlag of
          0:
          begin
            if(KFlag = 0) then
              FindDTM(FindAddyDTMs[0],x,y,MMX1,MMY1,MMX2,MMY2)
            else
              FindDTM(FindAddyDTMs1[0],x,y,MMX1,MMY1,MMX2,MMY2);

            KFlag := not KFlag;
            Mouse(x,y,0,0,True);
            MarkTime(ChangePoint);
            FreeDTMs(FindAddyDTMs);
            FreeDTMs(FindAddyDTMs1);
          end;
          1:
          begin
            if(KFlag = 0) then
              FindDTM(FindAddyDTMs[1],x,y,MMX1,MMY1,MMX2,MMY2)
            else
              FindDTM(FindAddyDTMs1[1],x,y,MMX1,MMY1,MMX2,MMY2);

            KFlag := not KFlag;
            Mouse(x,y,0,0,True);
            MarkTime(ChangePoint);
            FreeDTMs(FindAddyDTMs);
            FreeDTMs(FindAddyDTMs1);
          end;
          2:
          begin
            if(not (RocksToMine = 2)) then
            begin
              if(KFlag = 0) then
                FindDTM(FindAddyDTMs[2],x,y,MMX1,MMY1,MMX2,MMY2)
              else
                FindDTM(FindAddyDTMs1[2],x,y,MMX1,MMY1,MMX2,MMY2);

              KFlag := not KFlag;
              Mouse(x,y,0,0,True);
              MarkTime(ChangePoint);
              FreeDTMs(FindAddyDTMs);
              FreeDTMs(FindAddyDTMs1);

              ClearDebug;
              writeln('Searching For Runite Ore Rocks.');

              wait(500);
              repeat
                FindNormalRandoms;
                wait(50);
              until(not IsMoving);

              if(FindObjCustom(x,y,['Run','ore'],[10986113,11249027,11315076],10) and (not InvFull)) then
              begin
                repeat
                  Mouse(x,y,0,0,True);
                  RuniteCounter := RuniteCounter + 1;
                  r := InvCount + 1;

                  wait(500);
                  repeat
                    FindNormalRandoms;
                    wait(50);
                  until(not IsMoving);

                  MarkTime(MineCounter);
                  MarkTime(FindRock);
                  j := 1;
                  repeat
                    AntiBan;
                    MMouse(X1[j],Y1[j],2,2);
                    j := j + 1;
                    if(j > 3) then
                      j := 1;
                    wait(1000);
                    if(IsUpText('ite')) then
                      MineCounter := GetSystemTime;
                  until((r = InvCount) or (TimeFromMark(MineCounter)>3000) or (TimeFromMark(FindRock)>60000));

                  if((TimeFromMark(MineCounter)>3000) or (TimeFromMark(FindRock)>60000)) then
                    RuniteCounter := RuniteCounter - 1;

                until((not FindObjCustom(x,y,['Run','ore'],[10986113,11249027,11315076],10)) or InvFull);
                IncEx(RuneCounter,RuniteCounter);
              end;
            end;
          end;
        end;

        AddyFlag := AddyFlag + 1;
        if(AddyFlag > 2) then
          AddyFlag := 0;

        repeat
          ClearDebug;
          writeln('Waiting For Adamantite Ores.');
          FindNormalRandoms;
          wait(50);
        until(FindObjCustom(x,y,['Ada'],[6517347,7636339,7307375,6056540,6846568,8162939,8558210,8031610,8426624,6648933],3) or FindObjCustom(x,y,['Run','ore'],[10986113,11249027,11315076],7) or (TimeFromMark(ChangePoint)>k));

        if((RocksToMine = 0) and (TimeFromMark(ChangeGold)>k1)) then
        begin
          MineGold(X1,Y1);
          ChangeGold := GetSystemTime;
        end;

      until(FindObjCustom(x,y,['Ada'],[6517347,7636339,7307375,6056540,6846568,8162939,8558210,8031610,8426624,6648933],3) or FindObjCustom(x,y,['Run','ore'],[10986113,11249027,11315076],7) or (TimeFromMark(SafeLogout)>245000));

      Result := AddyFlag;

    end;

    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    {|  MineRocks is the procedure that makes you mine Adamantite/Runite/Gold. |}
    {|  Every time that the script clicks in a rock, the pointer will move     |}
    {|  around your char to ensure that if someone mines your rock first than  |}
    {|  you, you don't waste time waiting for an ore inventory count or for a  |}
    {|  flag time. With this method, the mining performance can be much better |}
    {|  when a player comes to mine the same rock than you, and surely it makes|}
    {|  you look more human while mining the rocks.                            |}
    {|-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-:_:-|}
    Procedure MineRocks;
    Var

      x,y,FindAddyDTM,MineCounter,FindRock,SafeLogout,RuniteCounter,AdamantiteCounter,i,j,r,AddyFlag:integer;
      X1,Y1:TIntegerArray;

    begin

      if(not LoggedIn) then
        Exit;

      FindAddyDTM := DTMFromString('mggAAAHicY2NgYMhjYmCoAeJWIC4B4llAvACIU4Fy5kBsDcQeQOwExFFAbGFqyqCtpQXH9bUVDI31VQz8QDlsmBEHhgAAY0AKWA==');

      wait(500);
      repeat
        FindNormalRandoms;
        AntiBan;
        wait(50);
      until(not IsMoving);

      ClickNorth(SRL_ANGLE_HIGH);

      if(InvFull) then
      begin
        writeln('The Inventory Is Full. Going To The Bank.');
        GoToBank;
        ItemDeposit;
        GoToMine;
      end;

      if((not InvFull) and (not FindObjCustom(x,y,['Ada'],[6517347,7636339,7307375,6056540,6846568,8162939,8558210,8031610,8426624,6648933],3)) and (not FindDTM(FindAddyDTM,x,y,MMX1,MMY1,MMX2,MMY2))) then
      begin
        FindNormalRandoms;
        GoToMine;
        FreeDTM(FindAddyDTM);
      end;

      X1  := [260,221,255,300];
      Y1  := [208,166,137,177];
      AddyFlag := 0;
      if((not FindObjCustom(x,y,['Ada'],[6517347,7636339,7307375,6056540,6846568,8162939,8558210,8031610,8426624,6648933],3)) and LoggedIn) then
      begin
        MarkTime(MineCounter);
        repeat
          if(not LoggedIn) then
            break;

          FindNormalRandoms;
          ClearDebug;
          writeln('Addy Mine Not Found. Going To The Mine Safe Point.');
          AddyFlag := FindRocks(AddyFlag,X1,Y1);

          repeat
            wait(50);
          until(not IsMoving);

          if((TimeFromMark(MineCounter)>240000) and (TimeFromMark(MineCounter)<300000)) then
          begin
            writeln('Could Not Go To The Mine. Aplying The Safe Path.');
            GoToMine;
          end;
          if(TimeFromMark(MineCounter)>300000) then
          begin
            ClearDebug;
            Writeln('Could Not Find The Addy Mine.');
            Report;
            Logout;
            Exit;
          end;
        until(FindObjCustom(x,y,['Ada'],[6517347,7636339,7307375,6056540,6846568,8162939,8558210,8031610,8426624,6648933],3));
      end;

      if(not LoggedIn) then
        Exit;

      ClearDebug;
      writeln('The Addy Mine Has Been Found!');

      i := InvCount;
      RuniteCounter := 0;
      AdamantiteCounter := 0;
      repeat

        if(not LoggedIn) then
          break;

        FindNormalRandoms;
        if (RunEnergy(10)) then
          SetRun(True);

        ClearDebug;
        writeln('Searching For Addy Rocks.');

        wait(500);
        repeat
          wait(50);
        until(not IsMoving);

        if(FindObjCustom(x,y,['Ada'],[6517347,7636339,7307375,6056540,6846568,8162939,8558210,8031610,8426624,6648933],3)) then
        begin
          Mouse(x,y,0,0,True);
          AdamantiteCounter := AdamantiteCounter + 1;
          i := InvCount + 1;

          wait(500);
          repeat
            AntiBan;
            wait(50);
          until(not IsMoving);

          repeat
            ClearDebug;
            AntiBan;
            FindNormalRandoms;
            MarkTime(FindRock);
            MarkTime(MineCounter);
            j := 0;
            repeat
              MMouse(X1[j],Y1[j],2,2);
              j := j + 1;

              if(j > 3) then
                j := 0;

              wait(1000);
              if(IsUpText('ite')) then
                MineCounter := GetSystemTime;
            until((i = InvCount) or (TimeFromMark(MineCounter)>5000) or (TimeFromMark(FindRock)>60000));

            if((TimeFromMark(MineCounter)>5000) or (TimeFromMark(FindRock)>60000)) then
              AdamantiteCounter := AdamantiteCounter - 1;
          until((TimeFromMark(MineCounter)>1000) or (i = InvCount) or (TimeFromMark(FindRock) > 60000));
        end
        else
        begin
          FindNormalRandoms;
          MarkTime(SafeLogout);
          AddyFlag := FindRocks(AddyFlag,X1,Y1);

          if(TimeFromMark(SafeLogout)>240000) then
          begin
            ClearDebug;
            writeln('Could Not Find Any Addy Rock.');
            Report;
            Logout;
            Exit;
          end;
        end;

        if(not (RocksToMine = 2)) then
        begin
          repeat
            if(not LoggedIn) then
              break;

            if(FindObjCustom(x,y,['Run','ore'],[10986113,11249027,11315076],10) and (not InvFull)) then
            begin
              if(IsUpTextMultiCustom(['Run','ore'])) then
              begin
                Mouse(x,y,0,0,True);
                RuniteCounter := RuniteCounter + 1;
                r := InvCount + 1;

                wait(500);
                repeat
                  wait(50);
                until(not IsMoving);

                MarkTime(MineCounter);
                MarkTime(FindRock);
                j := 1;
                repeat
                  AntiBan;
                  MMouse(X1[j],Y1[j],2,2);
                  j := j + 1;

                  if(j > 3) then
                    j := 1;

                  wait(1000);
                  if(IsUpText('ite')) then
                    MineCounter := GetSystemTime;
                until((r = InvCount) or (TimeFromMark(MineCounter)>3000) or (TimeFromMark(FindRock)>60000) or InvFull);

                if((TimeFromMark(MineCounter)>3000) or (TimeFromMark(FindRock)>60000)) then
                  RuniteCounter := RuniteCounter - 1;

              end;
            end;
          until((not FindObjCustom(x,y,['Run','ore'],[10986113,11249027,11315076],10)) or InvFull);
        end;

      until(InvFull);

      IncEx(AddyCounter,AdamantiteCounter);
      IncEx(RuneCounter,RuniteCounter);
      FreeSRLBitmaps;

    end;

    begin

      ClearDebug;
      DeclarePlayers;
      Login;
      ActivateClient;

      StartTime := GetSystemTime;
      repeat

        if(not LoggedIn) then
          LoginPlayer;

        MouseSpeed:=18;
        AntiBan;
        MineRocks;
        GoToBank;
        ItemDeposit;
        Report;
        GoToMine;

      until(AllPlayersInactive);

    end.
    Last edited by wister1; 04-21-2012 at 10:13 AM.

  2. #2
    Join Date
    Jan 2012
    Posts
    470
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    first looks good il test it

  3. #3
    Join Date
    Oct 2008
    Location
    C:\Simba\Includes\
    Posts
    7,566
    Mentioned
    19 Post(s)
    Quoted
    180 Post(s)

    Default

    Hmm, that's a unique place, I've honestly never knew it existed until now Cool release!
    Away for awhile, life is keeping me busy. | Want to get my attention in a thread? @Kyle Undefined; me.
    { MSI Phoenix || SRL Stats Sigs || Paste || Scripts || Quotes || Graphics }

    When posting a bug, please post debug! Help us, help you!

    I would love to change the world, but they won't give me the source code. || To be the best, you've got to beat the rest. || Logic never changes, just the syntax.
    If you PM me with a stupid question or one listed in FAQ, or about a script that is not mine, I will NOT respond.


    SRL is a Library of routines made by the SRL community written for the Program Simba. We produce Scripts for the game Runescape.


  4. #4
    Join Date
    Feb 2012
    Posts
    317
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by Kyle Undefined View Post
    Hmm, that's a unique place, I've honestly never knew it existed until now Cool release!
    Same

  5. #5
    Join Date
    Jan 2012
    Posts
    537
    Mentioned
    1 Post(s)
    Quoted
    16 Post(s)

    Default

    this was the script i used on my first apply, wasnt good enough but i decided to release thisversion of it (im upgrading it) so that i get new feedback

  6. #6
    Join Date
    Feb 2012
    Posts
    317
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    I might try it after 99 hunter bro

  7. #7
    Join Date
    Jan 2012
    Posts
    470
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    i cant go their on my skiller because u need a quest but il test it out when my main is unlocked.

  8. #8
    Join Date
    Jan 2012
    Posts
    537
    Mentioned
    1 Post(s)
    Quoted
    16 Post(s)

    Default

    you need to start A Giant Dwarf Quest

  9. #9
    Join Date
    Jan 2012
    Posts
    19
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Say all the quest you have to do please, not just the dwarfs quest.
    Last edited by Harry; 04-20-2012 at 08:12 AM. Reason: fixed Aussie grammar

  10. #10
    Join Date
    Jan 2012
    Posts
    537
    Mentioned
    1 Post(s)
    Quoted
    16 Post(s)

    Default

    Quote Originally Posted by matti303 View Post
    Say all the quest you have to do please, not just the dwarfs quest.
    it´s the only requirement needed...

  11. #11
    Join Date
    Apr 2012
    Posts
    113
    Mentioned
    0 Post(s)
    Quoted
    8 Post(s)

    Default

    testing script now could u possible make a option for it to mine adament and gold? not just addy? for example i cant mine rune yet but i dont want to stand around n wait for addy ya now?

    otherwise scripts seems to be running flawless will post progress after few hours

    keep up the good work =) & ty for release
    Last edited by unknownrpg; 04-21-2012 at 08:32 AM.

  12. #12
    Join Date
    Apr 2012
    Posts
    113
    Mentioned
    0 Post(s)
    Quoted
    8 Post(s)

    Default

    had to do 2 quests to be bale to use =p glad to finally see some high req. scripts on here

    they may have updated req.'s though it now req. completion of "Forgiveness of a Chaos Dwarf"

  13. #13
    Join Date
    Jan 2012
    Posts
    537
    Mentioned
    1 Post(s)
    Quoted
    16 Post(s)

    Default

    didnt knew, i looked into rs wiki to check reqs.Also the script does have the option to only mine adamant and gold

    at line 43 replace 0 with 2

    Simba Code:
    RocksToMine := 0;                      //If you want to mine Adamantite, Runite and Gold, leave 0.
                                             //If you want to mine only Adamantite and Runite, replace the 0 by 1.
                                             //If you only want to mine Adamantite, replace the 0 by 2.

  14. #14
    Join Date
    Apr 2012
    Posts
    113
    Mentioned
    0 Post(s)
    Quoted
    8 Post(s)

    Default

    at line 43 replace 0 with 2 if u do that it litterally does what it says only mines adamant it just walks back and forth waiting for it to respawn.

    n i had this happen to me after like 2 hours aswell but i just restarted simba and got this report. same thing just took longer


  15. #15
    Join Date
    Jan 2012
    Posts
    537
    Mentioned
    1 Post(s)
    Quoted
    16 Post(s)

    Default

    thats 1 free mill

  16. #16
    Join Date
    Feb 2012
    Posts
    14
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    This is great. I ran it yesterday for 8 hours or so and today for around 6 hours. It has not given me a single problem so far. Havent really calculated GP/hr, but the way I see it, anything over 100k/hr is good when you don't have to actually sit and play for hours and hours.

  17. #17
    Join Date
    Jan 2012
    Posts
    19
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    well, saw few problems wiht this script myself, it thinks that the summoning obelisk is addy ore i guess, cos it is the same colour as addy rock, and it keeps clicking sometimes there and keeps clicking untill i move acc.

    Also, it goes south behind the bank somewhere and stays there sometimes.

    Other than that, works ok.

  18. #18
    Join Date
    Jan 2012
    Posts
    537
    Mentioned
    1 Post(s)
    Quoted
    16 Post(s)

    Default

    Quote Originally Posted by kalle777 View Post
    well, saw few problems wiht this script myself, it thinks that the summoning obelisk is addy ore i guess, cos it is the same colour as addy rock, and it keeps clicking sometimes there and keeps clicking untill i move acc.

    Also, it goes south behind the bank somewhere and stays there sometimes.

    Other than that, works ok.
    the problem is exacly that, both have really close colors, never noticed the bank problem you said but it has a failsafe to prevent it getting lost to/from the bank

  19. #19
    Join Date
    Apr 2012
    Posts
    113
    Mentioned
    0 Post(s)
    Quoted
    8 Post(s)

    Default

    the banking thing it eventually fixes just takes awhile, but could u possible edit the 2 in line 43 so it mines addy and gold? not just addy? or tell me how 2 please.

  20. #20
    Join Date
    Jan 2012
    Posts
    537
    Mentioned
    1 Post(s)
    Quoted
    16 Post(s)

    Default

    Quote Originally Posted by unknownrpg View Post
    the banking thing it eventually fixes just takes awhile, but could u possible edit the 2 in line 43 so it mines addy and gold? not just addy? or tell me how 2 please.
    i dont get your question, you just have to replace the 0 with a 2, nothing more, thats not that hard i think, you just erase the zero and place a 2 in its place and voilá, adamant and gold only (it only mines gold while waiting for adamant, i might add in the future a fourth option to only mine gold)

  21. #21
    Join Date
    Apr 2012
    Posts
    113
    Mentioned
    0 Post(s)
    Quoted
    8 Post(s)

    Default

    Quote Originally Posted by wister1 View Post
    i dont get your question, you just have to replace the 0 with a 2, nothing more, thats not that hard i think, you just erase the zero and place a 2 in its place and voilá, adamant and gold only (it only mines gold while waiting for adamant, i might add in the future a fourth option to only mine gold)
    i know how to replace the 0 with a 2.. maybe i was wording it wrong, i'm saying when u do that it doesn't mine gold it only mines adamant when adamant is gone it will pace back and forth till adamant respawns

  22. #22
    Join Date
    Jan 2012
    Posts
    470
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    im so angry that i cant use this, main locked and way too many quests to do for this on the skiller but maybe il get around to them and finally use this

  23. #23
    Join Date
    Jan 2012
    Posts
    537
    Mentioned
    1 Post(s)
    Quoted
    16 Post(s)

    Default

    Quote Originally Posted by superbuster4 View Post
    im so angry that i cant use this, main locked and way too many quests to do for this on the skiller but maybe il get around to them and finally use this
    both quests are real easy lol, you just need a couple hours

  24. #24
    Join Date
    Jan 2012
    Posts
    19
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    logs out after 1-2hours?

  25. #25
    Join Date
    Jan 2012
    Posts
    537
    Mentioned
    1 Post(s)
    Quoted
    16 Post(s)

    Default

    Quote Originally Posted by matti303 View Post
    logs out after 1-2hours?
    it didnt before, no idea now but it doesnt seem the newest update of jagex to afect color bots

Page 1 of 2 12 LastLast

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •