Page 2 of 3 FirstFirst 123 LastLast
Results 26 to 50 of 63

Thread: [SRL4]noidea VWM

  1. #26
    Join Date
    Feb 2007
    Posts
    16
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    heres my progress report so far:
    / noidea's VWM'er \
    |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
    | Time Running : 2 Hours, 3 Minutes and 35 Seconds|
    | Total mined : 485 |
    | Total gasses : 0 |
    | Total loads : 19 |
    | Total gems : 1 |
    | Fights : 1 |
    | Relocated : 1 |
    |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
    | Player | Active | Loads | Mined | Gems |
    | 0 | F | 8 | 188 | 0 |
    | 1 | T | 6 | 162 | 0 |
    | 2 | T | 5 | 135 | 0 |
    \_________________________________________________/
    a good script, however the player who is currently false encoutered a random that teleported it somewhere, seems the few scripts I've used cant handle those teleporting randoms properly. any suggestoins?

  2. #27
    Join Date
    Jan 2008
    Location
    NC, USA.
    Posts
    4,429
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by sharlene212 View Post
    heres my progress report so far:
    / noidea's VWM'er \
    |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
    | Time Running : 2 Hours, 3 Minutes and 35 Seconds|
    | Total mined : 485 |
    | Total gasses : 0 |
    | Total loads : 19 |
    | Total gems : 1 |
    | Fights : 1 |
    | Relocated : 1 |
    |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
    | Player | Active | Loads | Mined | Gems |
    | 0 | F | 8 | 188 | 0 |
    | 1 | T | 6 | 162 | 0 |
    | 2 | T | 5 | 135 | 0 |
    \_________________________________________________/
    a good script, however the player who is currently false encoutered a random that teleported it somewhere, seems the few scripts I've used cant handle those teleporting randoms properly. any suggestoins?
    Was that with the new version? Yes! The relocater works /hugs myself!
    Thanks so much for this proggress report!

    The teleporting random is prolly a talking one that your Anti randoms missed do to your nick name. If your Name wer 'Zezima' then the nick would be 'zim' or 'ima'
    Quote Originally Posted by irc
    [00:55:29] < Guest3097> I lol at how BenLand100 has become noidea
    [01:07:40] <@BenLand100> i'm not noidea i'm
    [01:07:44] -!- BenLand100 is now known as BenLand42-
    [01:07:46] <@BenLand42-> shit
    [01:07:49] -!- BenLand42- is now known as BenLand420
    [01:07:50] <@BenLand420> YEA

  3. #28
    Join Date
    Feb 2007
    Posts
    16
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by noidea View Post
    The teleporting random is prolly a talking one that your Anti randoms missed do to your nick name. If your Name wer 'Zezima' then the nick would be 'zim' or 'ima'
    Nope... i have set nicknames for each player, so the nicknames weren't the problem. im guessing the random was the sandwich lady and it failed to detect and respond, resulting in the character being teleported.

  4. #29
    Join Date
    Feb 2007
    Posts
    16
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Ran the script a second time got this proggy:
    _________________________________________________
    / noidea's VWM'er \
    |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
    | Time Running : 2 Hours, 1 Minutes and 53 Seconds|
    | Total mined : 589 |
    | Total gasses : 0 |
    | Total loads : 25 |
    | Total gems : 2 |
    | Total Responds : 4 |
    | Fights : 1 |
    | NewPicksGotton : 1 |
    |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
    | Player | Active | Loads | Mined | Gems |
    | 0 | F | 5 | 104 | 1 |
    | 1 | F | 8 | 189 | 1 |
    | 2 | F | 12 | 296 | 1 |
    \_________________________________________________/
    this time two of my characters couldnt find their way back to the bank with a full load, dont know what happened there. Another character was teleported somewhere again, probably my antirandoms not working (i have set nick name for each characters). i could be missing an include or file, any ideas?

  5. #30
    Join Date
    Jan 2008
    Location
    NC, USA.
    Posts
    4,429
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Hmmm, I might have not called randoms enough. I'll check it out.
    Quote Originally Posted by irc
    [00:55:29] < Guest3097> I lol at how BenLand100 has become noidea
    [01:07:40] <@BenLand100> i'm not noidea i'm
    [01:07:44] -!- BenLand100 is now known as BenLand42-
    [01:07:46] <@BenLand42-> shit
    [01:07:49] -!- BenLand42- is now known as BenLand420
    [01:07:50] <@BenLand420> YEA

  6. #31
    Join Date
    Oct 2006
    Posts
    2,297
    Mentioned
    1 Post(s)
    Quoted
    0 Post(s)

    Default

    Some little things here and there, but overall very good ;D

    -Tsn.
    [QUOTE=Santa_Clause;277761]I love you too TSN :p[/QUOTE]
    [CENTER][URL="http://www.stats.srl-forums.com/sigs"][IMG]http://www.stats.srl-forums.com/sigs/1324.png[/IMG][/URL][/CENTER]

  7. #32
    Join Date
    Jan 2008
    Location
    NC, USA.
    Posts
    4,429
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Just wondering, does any one need/want sleeping in this? And how should it be, like every x ammount of minutes sleep xx ammounts of minutes (I shall put randomness in it)
    Quote Originally Posted by irc
    [00:55:29] < Guest3097> I lol at how BenLand100 has become noidea
    [01:07:40] <@BenLand100> i'm not noidea i'm
    [01:07:44] -!- BenLand100 is now known as BenLand42-
    [01:07:46] <@BenLand42-> shit
    [01:07:49] -!- BenLand42- is now known as BenLand420
    [01:07:50] <@BenLand420> YEA

  8. #33
    Join Date
    Jul 2007
    Posts
    46
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    i suggest round 10 mins. den another 1hr 30mins. den 15mins den 3 hrs den 30mins ect ect.

  9. #34
    Join Date
    Aug 2008
    Location
    Finland
    Posts
    2,851
    Mentioned
    3 Post(s)
    Quoted
    2 Post(s)

    Default

    Line 823: [Error] (17149:10): Duplicate identifier 'GETBLACKTEXT' in script D:\scar\SCAR 3.15\Scripts\VWM 0.7 - SMART.scar

    same thing with non-smart. I tried non-smart, it logged in, went through every slot in my inventory and logged out

  10. #35
    Join Date
    Jan 2008
    Location
    NC, USA.
    Posts
    4,429
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by marpis View Post
    same thing with non-smart. I tried non-smart, it logged in, went through every slot in my inventory and logged out
    It compiles for me... And others. Try updating SRL?

    Thanks for alerting me to the Inv problem!
    Updated!
    fixed inv problem found by marpis!

    Edit: and marpis. Idk if it still works (my rimmington miner, but the problem you had there was you needed to update your hooks
    Quote Originally Posted by irc
    [00:55:29] < Guest3097> I lol at how BenLand100 has become noidea
    [01:07:40] <@BenLand100> i'm not noidea i'm
    [01:07:44] -!- BenLand100 is now known as BenLand42-
    [01:07:46] <@BenLand42-> shit
    [01:07:49] -!- BenLand42- is now known as BenLand420
    [01:07:50] <@BenLand420> YEA

  11. #36
    Join Date
    Jan 2008
    Location
    NC, USA.
    Posts
    4,429
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    SCAR Code:
    _________________________________________________
    /                 noidea's VWM'er                 \
    |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
    | Time Running   : 8 Hours, 55 Minutes and 1 Seconds|
    | Total mined    : 2629                           |
    | Total gasses   : 0                              |
    | Total loads    : 101                            |
    | Total gems     : 3                              |
    | Total Responds : 17                             |
    | Fights         : 5                              |
    | NewPicksGotton : 1                              |
    |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
    |  Player  |  Active  |  Loads  |  Mined  |  Gems |
    |    0     |     F    |   7     |   162   |  0    |
    |    1     |     F    |   36    |   975   |  0    |
    |    2     |     F    |   11    |   252   |  0    |
    |    3     |     F    |   35    |   945   |  0    |
    |    4     |     F    |   12    |   295   |  0    |
    \_________________________________________________/
    /~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\
    |     SRL 29 Randoms Report    |
    |      [url]www.srl-forums.com[/url]      |
    |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
    | SRL Logs         :        36 |
    | Fights           :         5 |
    | Talks            :        15 |
    | Dwarfs           :         1 |
    | Ricks            :         3 |
    | Old Men          :         4 |
    | Sandwiches       :         2 |
    | Lamps Solved     :         2 |
    | Capn Hands       :         2 |
    | Certers Solved   :         1 |
    | Boxes Solved     :         2 |
    \~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/

    ..?
    Quote Originally Posted by irc
    [00:55:29] < Guest3097> I lol at how BenLand100 has become noidea
    [01:07:40] <@BenLand100> i'm not noidea i'm
    [01:07:44] -!- BenLand100 is now known as BenLand42-
    [01:07:46] <@BenLand42-> shit
    [01:07:49] -!- BenLand42- is now known as BenLand420
    [01:07:50] <@BenLand420> YEA

  12. #37
    Join Date
    Oct 2007
    Posts
    742
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Great script overall, but needs adjustments...

    The gas detection does not work at all... Broke two picks...

    The broken pick detection does not work eather, i think the dtm isnt working or something.

    I changed FindBrokenPick into FindPick, so it will just check if the pickaxe dtm is in the inv or equipped.
    Also fixed up some lil stuff. O ya i also changed the BrokenPick dtm so.. Yeah im gonna try my dtm, maybe it will work better.
    So here...
    SCAR Code:
    (*
    noidea's
    VWM'er
    Mines any ore there

    Setup DeclarePlayers, and the constants

    Please put all characters in the first slot on the
    Left hand side of the bank (Varrock West Bank)

    Please put all extra picks in first bank slot, and,
    Make sure your character has the mining lvl to use
    it

    Note: This is not reflection, and does not require SMART

    *)



    program New;
    {.include srl/srl.scar}

    const
      SRLStatsID    = '';
      SRLStatsPass  = '';
      dbug          = true;
      LoadsB4Switch = 5;
      DropGems      = False;



    procedure declarePlayers;
    begin
      HowManyPlayers := 1;
      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer := 0;

      Players[0].Name        := '';
      Players[0].Pass        := '';
      Players[0].Nick        := '';
      Players[0].active      := True;
      Players[0].Booleans[0] := True;//Pick weilded?
      Players[0].Pin         := '0000';//leave if not in use
      Players[0].Strings[0]  := 'iron';//must be lower case!!!!!!!!!!!!!!!!!!!!!!!!11!!!!!!!!!!!!!!!!!1111111111!!!!!!!!!111!!!11!
                          //tin, iron, clay, silver
      {Players[1].Name        := '';
      Players[1].Pass        := '';
      Players[1].Nick        := '';
      Players[1].active      := True;
      Players[1].Booleans[0] := False;//Pick weilded?
      Players[1].Pin         := '0000';//leave if not in use
      Players[1].Strings[0]  := 'iron';//must be lower case!!!!!!!!!!!!!!!!!!!!!!!!11!!!!!!!!!!!!!!!!!1111111111!!!!!!!!!111!!!11!
                          //tin, iron, clay, silver   }

    end;










    var
      lol, Maxwait, Responds, Bank, BrokenPick, Gem, p, head, stick, Pick: Integer;
      Rocks, NewPicks, Gasses, Gems, fightss, headsrepaired, relocates: Integer;
      ThePick: String;


    Function Bankstuff: Boolean; Forward;
    Procedure ToBank; Forward;
    function findMMbank:boolean; Forward;

    {*****************************************************
    function WalkAgainstWhiteWall(s: string; Left: Boolean): Boolean;
    By: noidea
    Description: Walks along any white wall, north or south,
                 on the left hand side or the right hand
                 side of the wall.
                 True is left, false is right
    Use/Example: WalkAgainstWhiteWall('s', True);
                 if WalkAgainstWhiteWall('s', True) then ...
    *****************************************************}

    function WalkAgainstWhiteWall(s: string; Left: Boolean): Boolean;
    Label rawr;
    var
      t, cts, x, y, h, w, m, I, f, p, pp : Integer;
      TPA   : TPointArray;
      ATPA   : Array of TPointArray;
      kk : Boolean;
    begin
      if not loggedin then exit;
      MakeCompass('360');
      cts := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      SetColorSpeed2Modifiers(7.28, 12.9);
      Case LowerCase(s) Of
        'n': t := -60;
        's': t := 60;
      end;
      FindColorsSpiralTolerance(MMCX, MMCY + T, TPA, 15726570, mmcx-40, MMY1, mmcx+40, MMY2, 12);
      ColorToleranceSpeed(CTS);
      ATPA := TPAToATPAEx(TPA, 1, 1);
      For I := 0 to High(ATPA) do
      begin
        MiddleTPAEx(ATPA[i], x, y);
        mmouse(x,y,0,0);
        wait(200);
        getmousepos(x,y);
        p := Getcolor(x, y);
        getmousepos(h,w);

        for pp := 0 to 4 do
          if (getcolor(x, y + pp) = 65536)then
          begin
            wait(1000+random(1000));
            WalkAgainstWhiteWall(s, Left);
            exit;
          end;

        for pp := 0 to 4 do
          if (getcolor(x, y - pp) = 65536)then
          begin
            wait(1000+random(1000));
            WalkAgainstWhiteWall(s, Left);
            exit;
          end;
        wait(200);

        if (getcolor(x, y) = p)then
        begin
          Goto Rawr
        end;

        if not (getcolor(x, y) = p)then
        begin
          for f := 0 to 4 do
          begin
            mmouse(h,w,0,0);
            try
              mmouse(x-f,y+f,0,0);
              wait(200);
              getmousepos(x,y);
              if(getcolor(x, y) = p)then
              begin
                KK := True;
                getmousepos(x,y);
                break;
              end;
            except
            begin
              mmouse(x+f,y-f,0,0);
              wait(200);
              getmousepos(x,y);
              if(getcolor(x, y) = p)then
              begin
                kk := True;
                getmousepos(x,y);
                break;
              end;
            end;
          end;
        end;
        if (kk) then goto rawr;

        rawr:
        begin
          getmousepos(x, y);
          if (getcolor(x, y) = p)then
          begin
            Case Left of
              True: m := -9;
              False: m := 8
            end;
            mmouse(x + m, y, 0, 0);
            getmousepos(x, y);
            if not(getcolor(x, y) = p) then
            begin
              mff(x, y, 4, 3);
              wait(randomRange(400, 500));
              flag;
              Result := True;
              exit;
            end;
          end;
        end;
      end;
    end;
    end;


    {*****************************************************
    Function CountClay: Integer;
    By: noidea
    Description: Counts any ore except clay you can mine.
    Use/Example: Ore := Ore + CountOre;
                 writeln(IntToStr(CountOre));
    *****************************************************}

    Function CountClay: Integer;
    var
      k, I: Integer;
      p : TBox;
    begin
      if not loggedin then exit;
      I := 1
      While I < 29 do
      begin
        GetInvItemBounds(I, p);
        if countcolor(65536, p.x1, p.y1, p.x1+34, p.y1+27) = 64 then
        inc(k);
        inc(I);
      end;
      Result := k;
    end;


    {*****************************************************
    Function CountOre: Integer;
    By: noidea
    Description: Counts any ore except clay you can mine.
    Use/Example: Ore := Ore + CountOre;
                 writeln(IntToStr(CountOre));
    *****************************************************}

    Function CountOre: Integer;
    var
      k, I: Integer;
      p : TBox;
    begin
      if not loggedin then exit;
      I := 1
      While I < 29 do
      begin
        GetInvItemBounds(I, p);
        if countcolor(65536, p.x1, p.y1, p.x1+34, p.y1+27) = 171 then
        inc(k);
        inc(I);
      end;
      Result := k;
    end;


    {*****************************************************
    Function CountGems: Integer;
    By: noidea
    Description: Counts any ore except clay you can mine.
    Use/Example: Ore := Ore + CountOre;
                 writeln(IntToStr(CountGems));
    *****************************************************}

    Function CountGems: Integer;
    var
      k, I: Integer;
      p : TBox;
    begin
      if not loggedin then exit;
      I := 1
      While I < 29 do
      begin
        GetInvItemBounds(I, p);
        if countcolor(65536, p.x1, p.y1, p.x1+34, p.y1+27) = 66 then
        inc(k);
        inc(I);
      end;
      Result := k;
    end;


    Procedure SafeFlag;
    var
      Mark: Integer;
    begin
      if not loggedin then exit;
      MarkTime(Mark);
      While FlagPresent do
      begin
        wait(70)
        if (TimeFromMark(Mark) > 4000)then break;
      end;
    end;


    Procedure KeepPlayer;
    begin
      Logout;
      Players[CurrentPlayer].active := True;
    end;

    Procedure KillPlayer;
    begin
      Logout;
      Players[CurrentPlayer].Active := False;
    end;


    Function FindCross(var x, y: Integer) : Boolean;
    begin
      result := FindColor(x, y, FindLadderColor, MMX1 + 60, MMY1 + 35, MMX2 - 30 , MMY2 - 30);
    end;


    Function FindLadderNearBank(var x, y: Integer): Boolean;
    begin
      result := FindColor(x, y, FindLadderColor, mmx1 + 35, mmy1 + 75, mmx2- 35, mmy2- 15);
    end;


    function SetDDTM: Integer;
    var
      dtmMainPoint: TDTMPointDef;
      dtmSubPoints: Array [0..4] of TDTMPointDef;
      TempTDTM: TDTM;
    begin
      if not loggedin then exit;
      dtmMainPoint.x := 580;
      dtmMainPoint.y := 116;
      dtmMainPoint.AreaSize := 4;
      dtmMainPoint.AreaShape := 0;
      dtmMainPoint.Color := FindVarrockRoadColor;
      dtmMainPoint.Tolerance := 0;

      dtmSubPoints[0].x := 580;
      dtmSubPoints[0].y := 116;
      dtmSubPoints[0].AreaSize := 2;
      dtmSubPoints[0].AreaShape := 0;
      dtmSubPoints[0].Color := FindVarrockRoadColor;
      dtmSubPoints[0].Tolerance := 0;

      dtmSubPoints[1].x := 575;
      dtmSubPoints[1].y := 71;
      dtmSubPoints[1].AreaSize := 2;
      dtmSubPoints[1].AreaShape := 0;
      dtmSubPoints[1].Color := FindVarrockRoadColor;
      dtmSubPoints[1].Tolerance := 0;

      dtmSubPoints[2].x := 612;
      dtmSubPoints[2].y := 121;
      dtmSubPoints[2].AreaSize := 2;
      dtmSubPoints[2].AreaShape := 0;
      dtmSubPoints[2].Color := FindVarrockRoadColor;
      dtmSubPoints[2].Tolerance := 0;

      dtmSubPoints[3].x := 562;
      dtmSubPoints[3].y := 121;
      dtmSubPoints[3].AreaSize := 2;
      dtmSubPoints[3].AreaShape := 0;
      dtmSubPoints[3].Color := FindVarrockRoadColor;
      dtmSubPoints[3].Tolerance := 0;

      dtmSubPoints[4].x := 558;
      dtmSubPoints[4].y := 98;
      dtmSubPoints[4].AreaSize := 2;
      dtmSubPoints[4].AreaShape := 0;
      dtmSubPoints[4].Color := FindVarrockRoadColor;
      dtmSubPoints[4].Tolerance := 0;

      TempTDTM.MainPoint := dtmMainPoint;
      TempTDTM.SubPoints := dtmSubPoints;
      Result := AddDTM(TempTDTM);
    end;


    Procedure LoadDTMs;
    begin
      Bank := DTMFromString('78DA63F4656260A86400036608C5505556C8F' +
           '01F483302F17F20607402AA0984C83121A9E187AA0101C66CA04C' +
           '210135F6409966026AAC803259F8D50000D3F50FD7');
      BrokenPick := DTMFromString('78DA63DCC1C4C0D0C7C8800CF4155819FE036' +
           '990E87F2060DC0E54D382AA06220B2381F45EA09A26026A8E03D5' +
           '741150B31FA8A68D809A0D403573F0AB01008EF90D15');
      {BrokenPick := DTMFromString('78DA634C67626078CA8002F415D818FE03694' +
           '620FE0F048C494035B718D000231209A4AB816AEE135093075473' +
           '8D809A12A09ABB04D42403D57CC2AF060098D10D3A');}

      Gem := DTMFromString('78DA63346766604860644006B3A64E65F80FA' +
           '441A2FF8180D10AA8261C550D44164602697DA09A0C026A1C806A' +
           '3209A8D103AA8920A04617A82691801A47C26A003CD10B0E');
      head := DTMFromString('78DA637465626078C280022CBD4318FE03694' +
           '620FE0F048C164035CF19D000231209A4BD816A6E1150E349A439' +
           '0F09A87125AC060093D70CE0');
      Stick := DTMFromString('78DA63B465626078CA8002F415D818FE03694' +
           '620FE0F048CF64035F718D000231209A46D806ADE1050630154F3' +
           '89801A67A09A9B04D4B800D5DCC2AF060022960C39');
      Pick := DTMFromString('78DA63B463626078C28002F415D818FE03694' +
           '620FE0F048C264035B719D000231209A4FD816A1E1150630954F3' +
           '89801A67A09A6BF8D500006B430B0F');
    end;


    Procedure FreeDTMS;
    begin
      FreeDTM(Bank);
      FreeDTM(BrokenPick);
      FreeDTM(Gem);
      FreeDTM(Head);
      FreeDTM(Stick);
      FreeDTM(Pick);
    end;


    Procedure nDbug(s: String);
    begin
      if dbug then writeln(s);
    end;


    Function Relocate( p : Integer ): Boolean;
    var
      x, y: Integer;
    Label Cook;
    begin
      case p of
        1:
        begin
          ndbug('Crap, we are lost while walking');
          ndbug('Attempting to relocate. (In Mine)');
          If FindSymbol(x, y, 'Quest')then
          begin
            MFF(x, y - 10, 5 ,  5);
            Flag;
          end;
          If FindSymbol(x, y, 'mining spot')then
          begin
            mff(x + 6, y, 2, 2);
            flag;
            ToBank;
            if BankStuff then
            begin
              result := True;
              inc(Relocates);
              KeepPlayer;
              Writeln('Succesessfully Relocated!');
              exit;
            end;
            Writeln('Failed at Relocating!');
            Writeln('Player lost!');
          end;
        end;
       
        2:
        begin
          Cook:
          begin
          if FindSymbol(x, y, 'cook')then
          begin
            mff(x + 62, y - 20, 4, 4);
            flag;
            if FindCross(x,y)then
            begin
              mouse(x , y - 20, 3, 3, true);
              flag;
            end else radialRoadWalk(FindVarrockRoadColor, 5, 10, 50, 1, -1);
            flag;
            if findMMbank then
            begin
              ndbug('Walked into bank');
              if BankStuff then
              begin
                KeepPlayer;
                inc(Relocates);
                exit;
              end;
            end else
            begin
              if DTMRotated(Bank, x, y, MMX1, MMY1, MMX2, MMY2)then
              begin
                mouse(x, y + 5, 2, 2, true);
                flag;
                nDbug('Used fail safe');
              end else
              begin
                KillPlayer;
                exit;
              end;
            end;
          end;
          end;
          if FindColor(x, y, FindRockColor, MMX1, MMY1, MMX2, MMY2)then
          begin
            mff(x, y, 4, 4);
            flag;
            goto Cook;
          end;
          If FindSymbol(x, y, 'anvil')or FindSymbol(x, y, 'guide')then
          begin
            mff(x, y, 4, 4);
            flag;
            if FindMMbank then
            begin
              writeln('Made way back to bank!');
              if BankStuff then
              begin
                result := true;
                inc(Relocates);
                KeepPlayer;
                exit;
              end;
            end;
            Writeln('Failed at relocating!');
          end;
        end;
      end;
      Writeln('Fudge Player is lost');
    end;
           
               



    function findMMbank:boolean;
    var
      i,x2,bankers, x, y:integer;
    begin
       if not loggedin then exit;
       bankers:=DTMFromString('78DA635CCDC4C0B096010C182114C39F3F4C7' +
           '0FE7F206004A9598A5B0D9806A9D98A5F0D0073770E02');
      for i:=1 to 8 do
      begin
        x2:=mmx1+round((mmx2-mmx1)*(i/8));
        if DTMrotated(bankers,x,y,mmx1,mmy1,x2,mmy2) then
        begin
          if mfnf(x+7,y,2,1) then
          begin
            fflag(0);
            result:=true;
            break;
          end;
        end;
      end;
      freeDTM(bankers);
    end;


    Procedure ToMine;
    var
      TheX, TheY,x, y, k: Integer;
      gh: Boolean;
    begin
      if not loggedin then exit;
      lol := SetDDTM;
      if DTMRotated(lol, x, y, MMX1, MMY1 + 60, mmx2- 60, MMY2)then
      begin
        mouse(x+ 6, y+ 6, 3, 3, true);
        flag;
        nDbug('Found DTM');
      end else RadialRoadWalk(FindVarrockRoadColor,  225, 220, 50, 1, 1);
      flag;
      FreeDTM(LOL);
      If FindLadderNearBank(x, y) then
      begin
        mouse(x - 15, y , 4, 4, true);
        wait(200);
        flag;
      end else
      begin
        If not relocate(2) then
        begin
          killPlayer;
        end;
      end;
      Flag;
      For k := 0 to 1 do
        WalkAgainstWhiteWall('s', True);

      if FindCross( x, y ) then
      begin
        writeln('found');
        gh := True;
        mouse( x, y + 40, 2, 2, true );
        wait(200);
        flag;
      end else
      begin
        writeln('didnt find ladder first time');
        if not WalkAgainstWhiteWall('s', True) then
        if not relocate(2) then
        begin
          KillPlayer;
          exit;
        end;
      end;
      K := 0;
      repeat
        if(FindColor(x, y, FindStoneColor, MMX1, MMY1 {+ 70}, MMX2, MMY2))then
        begin
          mouse(x, y - 1, 3, 3, true);
          wait(200);
          Flag;
          gh := True;
        end else
        begin
          WalkAgainstWhiteWall('s', True);
          gh := False;
          inc(K);
        end;
      until gh or (k > 4);
      if( k > 4 )then
      begin
        if not relocate(2) then
        begin
          ndbug('Lost');
          KillPlayer;
          exit;
        end;
      end;

      case LowerCase(Players[CurrentPlayer].strings[0]) of
        'tin':
        begin
          TheX := -30;
          TheY := 17;
        end;
        'clay':
        begin
          TheX := -30;
          TheY := 30;
        end;
        'iron':
        begin
          TheX := -30;
          They := 50;
        end;
        'silver':
        begin
          TheX := -30;
          They := 50;
        end;
      end;
      If not FindSymbol(x, y, 'mining site')then
      begin
        if(FindColor(x, y, FindStoneColor, MMX1, MMY1 {+ 70}, MMX2, MMY2))then
        begin
          mouse(x, y, 3, 3, true);
          wait(200);
          Flag;
        end else
        begin
          if not relocate(2) then
            KillPlayer;
        end;
      end;
      ndbug('Found Mining symbol, continuing');
      if findColor(x, y, FindStoneColor, MMCX + TheX, MMCY + TheY, MMX2, MMY2)then
      begin
        mouse(x,y ,3, 3, true)
        flag;
      end else
      if not relocate(1) then
      begin
        KillPlayer;
        exit;
      end;
    end;


    Procedure ToBank;
    var
      x, y, i: Integer;
    begin
      if not loggedin then exit;
      SetRun(False);
      if FindColor(x, y, FindStoneColor, MMX1, MMY1, MMX2, MMY2)then
      begin
        mouse(x, y, 0, 0, true);
        flag;
      end else
      begin
        ndbug('didnt find the stone');
        if not WalkAgainstWhiteWall('n', True)then
        if not relocate(1) then
        begin
          killPlayer;
        end;
      end;
      WalkAgainstWhiteWall('n', True);
      If FindCross(x, y)then
      begin
        mouse(x - 25, y, 0, 0, true);
        flag;
      end else
      begin
        ndbug('Couldnt find ladder');
        if not WalkAgainstWhiteWall('n', True) then
        if not relocate(1) then
        begin
          KillPlayer;
          exit;
        end;
      end;
      WalkAgainstWhiteWall('n', True);
      if FindCross(x,y)then
      begin
        mouse(x , y - 20, 3, 3, true);
        flag;
      end else radialRoadWalk(FindVarrockRoadColor, 5, 10, 50, 1, -1);
      flag;
      if findMMbank then
      begin
        ndbug('Walked into bank');
        exit;
      end else
      begin
        if DTMRotated(Bank, x, y, MMX1, MMY1, MMX2, MMY2)then
        begin
          mouse(x, y + 5, 2, 2, true);
          flag;
          nDbug('Used fail safe');
        end else
        begin
          KillPlayer;
          exit;
        end;
      end;
    end;


    Function FindVWB(var Cords: Tpoint): Boolean; Forward;


    Procedure NewPick;
    var
      i,x, y, a: Integer;
      k: Tpoint;
    begin
      if not loggedin then exit;
      if Players[CurrentPlayer].booleans[0]then
      begin
        Gametab(5);
        mmouse(583, 299, 10, 10);
        wait(100+random(100));
        if isuptext('oken')then
        begin
          Getmousepos(x, y);
          mouse(x, y, 0, 0, true);
          gametab(4);
        end else ndbug('Was not pick weiled!');
      end;
      For i := 1 to 28 do
      begin
        mmouseItem(i);
        wait(100+random(100));
        if isuptext('oken')then
        begin
          Getmousepos(x, y);
          holdmouse(x, y, true);
          wait(100+random(100));
          mmouseitem(1);
          wait(100+random(100));
          getmousepos(x, y);
          releasemouse(x, y, true);
          break;
        end;
      end;
      flag;
      wait(200);
      if FindVWB(k) then
      begin
        nDbug('Using noidea''s openbank!');
        if pinscreen then
          inpin(Players[CurrentPlayer].pin);
        if bankscreen then
        begin
          depositall;
          MouseBox(39, 93, 66, 121, 3);
          wait(100+random(100));
          if isuptext('ickax')then
          begin
            getmousepos(x, y);
            mouse(x, y, 0, 0 ,true);
          end else
          begin
            ndbug('No more picks for the player, it''s false now');
            closebank;
            KillPlayer;
            exit;
          end;
          closebank;
          if Players[CurrentPlayer].booleans[0] then
          begin
            MMouseItem(1);
            wait(100+random(100));
            if isuptext('ickax')then
            begin
              getmousepos(x, y);
              mouse(x, y, 0 , 0, true);
            end else
            begin
              ndbug('Pick wasnt in first inv spot, i give up');
              ndbug('Next Player');
              killplayer;
              exit;
            end;
          end;
        end;
      end;
    end;


    {-------------------------------}
    { MasterKill's Responder- Start }
    {-------------------------------}
    var
      HowManyResponds: Integer;
      TheQuestion, TheRespond: array of array of String;

    Procedure SetupResponds;
    begin
      HowManyResponds := 2;
                                                                                                                                                                                                    SetArrayLength(TheQuestion, HowManyResponds); SetArrayLength(TheRespond, HowManyResponds);
      TheQuestion[0] := ['noob'];
      TheRespond[0]  := ['Im not a noob!', 'your the noob', 'look in the mirror', 'noob noob', 'no way noob', 'your more noob', 'whoes noob?'];

      TheQuestion[1] := ['respond'];
      TheRespond[1]  := ['what to say?', 'i dont have anything to say', 'no im bussy'];
    end;


    {*******************************************************************************
    function GetBlackText(ChatLine: Integer): string;
    By: ZephyrsFury based on the works of Wizzup?
    Description: Gets the black message text on ChatLine (1 to 8).
    *******************************************************************************}


    function GetBlackText(ChatLine: Integer): string;
    var
      TP: TPoint;
    begin
      TP := TextCoords(ChatLine);
      Result := Trim(GetTextAtEx(TP.x - 2, TP.y - 2, 0, SmallChars, False, False, 0,
        1, 0, 80, False, tr_AllChars));
    end;

    Function AutoRespond : Boolean;      //Ty MK for the Responder
    var
      Text, Name, MakeRespond, LastRespond : String;
      x, y, I, II, Rand, CurTime, SetTime : Integer;
      Awnser : TStringArray;
      TextP : TPoint;

    begin
      if not loggedin then exit;
      CurTime := GetSystemTime;
      If (CurTime - SetTime < 20000) Then Exit;
      For I := 8 DownTo 4 Do
      Begin
        TextP := TextCoords(I);
        If findcolor(x, y, 16711680, TextP.x, TextP.y, TextP.x + 200, TextP.y + 14) Then
        Begin
          Text := LowerCase(Trim(GetTextAtEx(x - 3, textp.y - 2, 0, SmallChars, False, False, -1, 1, 16711680, 60, False, tr_allChars)));
          If (Text = LastRespond) Then
          Exit;
          LastRespond := Text;
          Name := GetBlackText(I);
          If (Pos(Players[CurrentPlayer].nick, Name) <> 0) then Exit;
          Break;
        End;
        If (I = 4) Then Exit;
      End;
      If (Pos(Players[CurrentPlayer].Nick, Text) <> 0) Then
      Begin
        If (Pos('nice', Text) <> 0) Or (Pos('cool', Text) <> 0) Then
        Begin
          Awnser := ['thanks', ':)', 'tnx', 'ur cool to'];
          I := random(High(Awnser));
          MakeRespond := Awnser[I];
        End Else
        If (Pos('friends', Text) <> 0) Then
        Begin
          Awnser := ['no', 'no way', 'sorry my list is full', 'no sorry'];
          I := random(High(Awnser));
          MakeRespond := Awnser[I];
        End Else
        If (Pos('macro', Text) <> 0) Or (Pos('bot', Text) <> 0) Or (Pos('auto', Text) <> 0) Then
        Begin
          Awnser := ['lol im not!', 'why?', 'no way', 'not me', 'dream on', 'nah'];
          I := random(High(Awnser));
          MakeRespond := Awnser[I];
        End Else
        Begin
          Awnser := ['no, im bussy', 'go away plz', 'leave me alone', 'im bussy'];
          I := random(High(Awnser));
          MakeRespond := Awnser[I];
        End;
        WriteLn('Respond:');
        WriteLn('/ ' + Name + ' ' + Text);
        TypeSend(MakeRespond);
        WriteLn('/ ' + Players[CurrentPlayer].Name + ': ' + MakeRespond);
        Responds := Responds + 1;
        Result := True;
        SetTime := GetSystemTime;
        exit;
      End;
      If (Pos('mining', Text) <> 0) Then
      Begin
        If (Pos('my mining level is', Text) <> 0) Or (Pos('m mining ore', Text) <> 0) Then
        Begin
          Awnser := ['gratz', ':)', 'kewl', 'cool'];
          I := random(High(Awnser));
          MakeRespond := Awnser[I];
        End Else
        If (Pos('what is your level in mining', Text) <> 0) Then
        Begin
          Awnser := [IntToStr(GetSkillLevel('mining')), 'me ' + IntToStr(GetSkillLevel('mining')), 'My Mining level is '+ IntToStr(Players[CurrentPlayer].integers[1]) + '.'];
          I := random(High(Awnser));
          MakeRespond := Awnser[I];
        End Else
        If (Pos('what ore are you mining', Text) <> 0) Then
        Begin
          Awnser := [Players[CurrentPlayer].Strings[0]];
          I := random(High(Awnser));
          MakeRespond := Awnser[I];
        End Else
        If (Pos('s a good place for me', Text) <> 0) Then
        Begin
          Awnser := ['here', 'what about here', 'here i guess', 'here?'];
          I := random(High(Awnser));
          MakeRespond := Awnser[I];
        End Else
        Begin
          Awnser := [IntToStr(GetSkillLevel('mining')), 'me ' + IntToStr(GetSkillLevel('mining')), 'My Mining level is '+ IntToStr(GetSkillLevel('mining')) + '.'];
          I := random(High(Awnser));
          MakeRespond := Awnser[I];
        End;
        WriteLn('Respond:');
        WriteLn('/ ' + Name + ' ' + Text);
        TypeSend(MakeRespond);
        WriteLn('/ ' + Players[CurrentPlayer].Name + ': ' + MakeRespond);
        Responds := Responds + 1;
        Result := True;
        SetTime := GetSystemTime;
        exit;
      End;
      For I := 0 To HowManyResponds - 1 Do
        begin
         For II := 0 To High(TheQuestion[I]) Do
           Begin
            If (Pos(TheQuestion[I][II], Text) <> 0) then
               begin
                 WriteLn('Respond:');
                 WriteLn('/ ' + Name + ' ' + Text);
                 Rand := Random(High(TheRespond[I]));
                 TypeSend(TheRespond[I][Rand]);
                 WriteLn('/ ' + Players[CurrentPlayer].Name + ': ' + TheRespond[I][Rand]);
                 Result := True;
                 SetTime := GetSystemTime;
               exit;
             end;
         end;
      end;
    end;

    {--------------------------------------------------------------------}


    {*******************************************************************************
    function FindGas(gx, gy: Integer): Boolean;
    By: Nielsie95 and Sumilion
    Description: gx, gy are the coordinates of the found ore color
    *******************************************************************************}

    function FindGas(gx, gy: Integer): Boolean;
    var
      arP: TPointArray;
      c: TIntegerArray;
      i, l, t, m, r, g, b, x, y: Integer;
      Bounds: TBox;
      P: TPoint;
    begin
      if not loggedin then exit;
      if not InRange(gx, MSX1, MSX2) or not InRange(gy, MSY1, MSY2) then
        Exit;

      ColorToleranceSpeed(2);
      t := 0;
      m := 0;
      SetColorspeed2Modifiers(0.13, 0.77);
      if not FindColorTolerance(x, y, 10070706, gx - 30, gy - 30, gx + 30, gy + 30, 9) then
      begin
        ColorToleranceSpeed(1);
        SetColorspeed2Modifiers(0.2, 0.2);
        Exit;
      end;

      FindColorsTolerance(arP, 5335923, 3, 3, 515, 336, 6);
      while True do
      begin
        if (Length(arP) < 3) then Break;
        Bounds := GetTPABounds(arP);
        SetColorspeed2Modifiers(0.1, 0.4);
        FindColorsTolerance(arP, 7244690, Max(Bounds.x1 - 15, 0), Max(Bounds.y1 - 15, 0), Min(Bounds.x2 + 15, 515), Min(Bounds.y2 + 35, 336), 20);
        if (Length(arP) < 65) then Break;
        c := GetColors(arP);
        l := High(c);
        for i := 0 to l do
        begin
          ColorToRGB(c[i], r, g, b);
          m := m + r + g + b;
        end;
        m := (m / (l + 1)) / 3;
        for i := 0 to l do
        begin
          ColorToRGB(c[i], r, g, b);
          r := iAbs(m - (r + b + g) / 3);
          if (r < 15) then
            Inc(t);
        end;
        Result := ((t / l * 1.0) < 0.85) and (Extended(t / l * 1.0) > 0.15);
        if Result then
        begin
          P := MiddleTPA(arP);
          Result := (Distance(P.x, P.y, MSCX, MSCY) < 80);
        end;
        Break;
      end;

      ColorToleranceSpeed(1);
      SetColorspeed2Modifiers(0.2, 0.2);
    end;


    function GasFinder(GX, GY : Integer): Boolean;   //Thanks Wizzup!
    Var
       x1, y1, x2, y2, I, time, c: Integer;
       R, G, B: Integer;
       H, S, L: ExtEnded;
       X, Y, Z: ExtEnded;
       Gas, Gas2: TPointArray;
       Colors, C2: TIntegerArray;
    begin
      if not loggedin then exit;
      Try
        x1 := gx - 35;
        If x1 < 0 Then
          x1 := 0;
        y1 := gy - 35;
        If y1 < 0 Then
          y1 := 0;
        x2 := gx + 35;
        If x2 > 515 Then
          x2 := 515;
        y2 := gy + 35;
        If y2 > 336 Then
          y2 := 336;
        Time := GetSystemTime;
        Result := False;
        c := GetColorToleranceSpeed;
        ColorToleranceSpeed(2);
        SetColorSpeed2ModIfiers(0.2, 0.2);
        FindColorsTolerance(Gas, 8886170, x1, y1, x2, y2, 20);
        ColorToleranceSpeed(c);
        If length(Gas) < 10 Then
          Exit;
        Colors := GetColors(Gas);
        C2 := Colors;
        ClearSameIntegers(C2);
      //  writeln('Colors Length: ' + inttostr(length(colors)));
       // writeln('C2 Length: ' + inttostr(length(C2)));
        If Length(C2) < 40 Then
          Exit;
        For I := 0 To High(Gas) Do
        Begin
          ColorToRGB(Colors[I], R, G, B);
          If Abs(R - G) <= 10.0 Then
          Begin
            ColorToHSL(Colors[I], H, S, L);
            If (H > 11.5) And (H < 16.0) And (S < 12.0) Then
            Begin
              ColorToXYZ(Colors[I], X, Y, Z);
              If (Abs(X - Y) < 5.0) And (Abs(X - Z) < 5.0) And (Abs(Y - Z) < 5.0) Then
              Begin
                SetLength(Gas2, Length(Gas2) + 1);
                Gas2[High(Gas2)] := Gas[I];
              End;
            End;
          End;
        End;
        //WriteLn('time: ' + IntToStr(GetSystemTime - Time));
        //WriteLn('gas2 length: ' + IntToStr(Length(Gas2)));
        Result := (Length(Gas2) > 30); // The only number you might want to tweak.
        //debugtpa(Gas2, '');
        if result then
        begin
          SaveScreenshot(ScriptPath + 'Found WIZZUP gas ' + TimeRunning + '.bmp')
          Exit;
        end;
        //debugtpa(gas2, '');
      Except WriteLn('No window selected'); end;
    End;

    {----------------------------}
    {    Find Gas Procedure!     }
    {----------------------------}


    Procedure DetectGas;
    var
      x, y: Integer;
    Begin
      if not loggedin then exit;
      If GasFinder(x, y) or FindGas(x, y) then
      begin
        inc(gasses);
        MouseFlag(MMCX + 5, MMCY+5, 5, 5, 0);
        SleepAndMoveMouse(7000 + Random(300));
      end;
    end;


    Function FindPick: Boolean;
    var
      x, y: Integer;
     
    begin
      if not loggedin then exit;
      GameTab(4);
      Wait(100+Random(200));
      if not FindDTM(Pick, x, y, mix1, miy1, mix2, miy2) then
       begin
       GameTab(5);
       Wait(100+random(300));
       if not FindDTM(Pick, x, y, mix1, miy1, mix2, miy2) then
       begin
       Result:=False;
       Exit;
       end else
       begin
       Result:=True;
       Exit;
       end;
       end else
       Result:=True;
    end;


    Function FindRock(s: String; var Cord: TPoint): Boolean;
    Var
      CTS, I: Integer;
      TheTPA: TPointArray;
      ATPA: Array of TPointArray;
      Options: TVariantArray;
    begin
      if not loggedin then exit;
      case Lowercase(s) of
        'tin': Options := ([ 0.14, 0.13, 8553100, 11 ]);
        'clay': Options := ([ 0.01, 1.58, 5544639, 11 ]);
        'iron': Options := ([ 0.01, 0.07, 2832734, 15 ]);
        'silver': Options := ([ 0.10, 0.57, 9546935, 5 ]);
      end;
      CTS := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      SetColorSpeed2Modifiers(Options[0], Options[1]);
      FindColorsSpiralTolerance(MSCX, MSCY, TheTPA, Options[2] , MSX1, MSY1, MSX2, MSY2, Options[3]);
      ColorToleranceSpeed(CTS);
      ATPA := TPAToATPAEx(TheTPA, 8, 8);
      For I := 0 to High(ATPA) do
      begin
        MiddleTPAEx(ATPA[i], Cord.x, Cord.y);
        if (Distance(mscx, mscy, Cord.x, Cord.y) > 229) then exit;
        MMouse(Cord.x, Cord.y, 3, 3);
        wait(100+random(100));
        FindNormalRandoms;
        DetectGas;
        If(IsUpTextMultiCustom(['Mine', 'Min', 'ine', 'Rock', 'ock'])) then
        begin
          Result := True;
          GetMousePos(Cord.x, Cord.y);
          DetectGas;
          Break;
        end;
      end;
    end;


    Procedure Randoms;
    begin
      DetectGas;
      FindNormalRandoms;
      if findFight then
      begin
        runaway('e',true,1,5000+random(5000));
        inc(fightss);
        exit;
      end;
      DetectGas;
      AutoRespond;
    end;


    Function FindHead(var head: Tpoint): Boolean;
    Var
      CTS, I: Integer;
      TPA: TPointArray;
      ATPA: Array of TPointArray;
      Optionz: TVariantArray;
    begin                            //8286806 //7826257
      case Lowercase(ThePick) of
        'steel': Optionz := ([ 0.25, 0.05, 5855840, 9 ]);
        'bronz': Optionz := ([ 0.05, 0.01, 2110788, 9 ]);
        'iron': Optionz := ([ 0.12, 0.04, 5263445, 17 ]);
        'mith': Optionz := ([ 0.10, 0.02, 5979710, 11 ]);
        'rune': Optionz := ([ 0.00, 0.05, 8812891, 13 ]);
        'addy': Optionz := ([ 0.10, 0.03, 5136717, 9 ]);
      end;
      CTS := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      SetColorSpeed2Modifiers(Optionz[0], Optionz[1]);
      FindColorsSpiralTolerance(MSCX, MSCY, TPA, Optionz[2] , MSX1, MSY1, MSX2, MSY2, Optionz[3]);
      ColorToleranceSpeed(CTS);
      ATPA := TPAToATPAEx(TPA, 2, 2);
      For I := 0 to High(ATPA) do
      begin
        MiddleTPAEx(ATPA[i], head.x, head.y);
        MMouse(head.x, head.y, 2, 2);
        wait(100+random(100));
        If(IsUpTextMultiCustom(['ake', 'ick', 'ead'])) then
        begin
          Result := True;
          GetMousePos(head.x, head.y);
          Break;
        end;
      end;
    end;


    Function LostHead: Boolean;
    var
      x, y, ct: Integer;
    begin
      ct := GetCurrentTab;
      case Players[CurrentPlayer].Booleans[0] of
        True: Gametab(5);
        False: Gametab(4);
      end;
      Result := FindDTM(Stick, x, y, MIX1, MIY1, MIX2, MIY2);
      If result then
      if GetCurrentTab = 5 then mouse(x, y, 3, 3, true);
      Gametab(ct);
    end;


    Procedure WhileWacking;
    var
      LastChat1, LastChat0: String;
      l: Integer;
      head1: Tpoint;
      x, y: Integer;
    label This;
    begin
      if not loggedin then exit;
      LastChat1 := 'no ore';
      LastChat0 := 'anag';
      SafeFlag;
      SleepAndMoveMouse(1000);
      makeCompass('N')
      MarkTime(l);
      repeat
        Randoms;
        sleepandMoveMouse(100 * 2);
      until (invFull)or FindBlackChatMessage(LastChat0)or FindBlackChatMessage(LastChat1)or(TimeFromMark(l) > MaxWait + Random(2000));
      if  FindNPCChatText('do not have a', ClickLeft)then
      begin
        if LostHead then
        begin
          if FindHead(head1)then
          begin
            mouse(head1.x, head1.y, 0, 0, false);
            Chooseoption('ake');
            SafeFlag;
            wait(500+random(300));
            if Players[CurrentPlayer].Booleans[0]=True then//If the pickaxe
            begin                                          //was weilded, then
            GameTab(5);                                    //un-equip the stick.
            if FindDTM(Stick, x, y, mix1, miy1, mix2, miy2)then
            Mouse(X, Y, 2, 2, True);
            Wait(500+Random(200));
            end;
            if FindDTM(Head, x, y, mix1, miy1, mix2, miy2)then
            begin
              mouse(x, y, 3, 3, true);
              if FindDTM(Stick, x, y, MIX1, MIY1, MIX2, MIY2)then
              begin
                mouse(x, y, 3, 3, true);
                inc(headsrepaired);
                If Players[CurrentPlayer].Booleans[0] then//Weild the pick.
                  if FindDTM(Pick, x,y, MIX1, MIY1,MIX2, MIY2)then
                    mouse(x, y, 4, 4, true);
                exit;
              end else
              begin
                FindDTM(Head, x, y, MIX1, MIY1, MIX2, MIY2)
                mouse(x, y, 3, 3, true);
              end;
            end else
            begin
              ndbug('Didnt find pick head');
              goto This;
            end;
          end else
          begin
            ndbug('Error: Didn''t find pick head on ground!');
            Goto This;
          end;
        end else Goto This;
         
        This:
        if FindPick then
        begin
          ToBank;
          BankStuff;
          inc(NewPicks);
          NewPick;
          Logout;
          Players[CurrentPlayer].Active := True;
          exit;
        end else ndbug('False alarm, no broken picks!');
        DwarfItem;
      end;
    end;


    Function FindVWB(var Cords: Tpoint): Boolean;
    Var
      CTS, I: Integer;
      TPA: TPointArray;
      ATPA: Array of TPointArray;
    begin
      if not loggedin then exit;
      CTS := GetColorToleranceSpeed;
      ColorToleranceSpeed(2);
      SetColorSpeed2Modifiers(0.04, 1.43);
      FindColorsSpiralTolerance(MSCX, MSCY, TPA, 2180433 , MSX1, MSY1, MSX2, MSY2, 7);
      ColorToleranceSpeed(CTS);
      ATPA := TPAToATPAEx(TPA, 15, 15);
      For I := 0 to High(ATPA) do
      begin
        MiddleTPAEx(ATPA[i], Cords.x, Cords.y);
        MMouse(Cords.x, Cords.y, 2, 2);
        wait(100+random(100));
        If(IsUpTextMultiCustom(['Bank', 'ank', 'Boot', 'ooth' ])) then
        begin
          GetMousePos(Cords.x, Cords.y);
          mouse(Cords.x, Cords.y, 0, 0, false);
          wait(100);
          if not Chooseoption('uickly')then
          begin
            mouse(Cords.x, Cords.y, 0, 0, false);
            wait(100);
            ChooseOption('ank');
          end;
          wait(100);
          Flag;
          wait(400+random(200));
          Result := BankScreen or Pinscreen;
          Break;
        end;
      end;
    end;


    Function FindGem(var x:Tpoint):boolean;
    begin
      if not loggedin then exit;
      Result := finddtm(Gem,x.x,x.y,MIX1,MIY1,MIX2,MIY2);
    end;


    Function Bankstuff: Boolean;
    var
      k: TPoint;
    begin
      if not loggedin then exit;
      flag;
      wait(200);
      if FindVWB(k) then
      begin
        nDbug('Using noidea''s openbank!');
        if pinscreen then
          inpin(Players[CurrentPlayer].pin);
        if bankscreen then
        begin
          ReportVars[0] := ReportVars[0] + CountOre;
          ReportVars[0] := ReportVars[0] + CountClay;
          ReportVars[1] := ReportVars[1] + CountGems;
          Rocks := Rocks + CountOre;
          Rocks := Rocks + Countclay;
          Gems := Gems + CountGems;
          Players[CurrentPlayer].integers[2] := Players[CurrentPlayer].integers[2] + CountGems;
          Players[CurrentPlayer].integers[0] := Players[CurrentPlayer].integers[0] + CountOre;
          Players[CurrentPlayer].integers[0] := Players[CurrentPlayer].integers[0] + CountClay;
          if Players[CurrentPlayer].Booleans[0] then
          depositAll else deposit(2, 28, true);
          closebank;
          Result := True;
        end;
      end else
      begin
        if OpenBankFast('vwb')then
        begin
          If pinscreen then
            inpin(Players[CurrentPlayer].pin);
          if BankScreen then
          begin
             ReportVars[0] := ReportVars[0] + CountOre;
             ReportVars[0] := ReportVars[0] + CountClay;
             ReportVars[1] := ReportVars[1] + CountGems;
             Rocks := Rocks + CountOre;
             Rocks := Rocks + Countclay;
             Players[CurrentPlayer].integers[0] := Players[CurrentPlayer].integers[0] + CountOre;
             Players[CurrentPlayer].integers[0] := Players[CurrentPlayer].integers[0] + CountClay;
            if Players[CurrentPlayer].Booleans[0] then
            depositAll else deposit(2, 28, true);
            CloseBank;
            Result := True;
          end;
        end else
        begin
          ndbug('Couldnt Openbank');
          KillPlayer;
          Result := False;
          exit;
        end;
      end;
    end;


    Procedure MineRocks;
    var
      TehCords, gem: Tpoint;
      i: Integer;
    begin
      if not loggedin then exit;
      repeat
        if not loggedin then exit;
        if FindRock(Lowercase(Players[CurrentPlayer].strings[0]), TehCords)then
        begin
          DetectGas;
          FindNormalRandoms;
          Case random(2)of
            0: mouse(TehCords.x, TehCords.y, 0, 0, true);
            1: begin
                 mouse(TehCords.x, TehCords.y, 0, 0, false);
                 chooseoption('ine');
               end;
          end;
          WhileWacking;
          if DropGems then
          begin
            if FindGem(Gem)then
            begin
              mouse(gem.x, gem.y, 4, 4, false);
              Chooseoption('rop');
            end;
          end;

          i := 0;
        end else
        begin
          inc(i);
          SleepAndMoveMouse(2000);
          if ( i >  60+random(10) )then
          if not relocate(1)then
          begin
            nDbug('Couldnt Find The Rocks, KillingPlayer!');
            KillPlayer;
            exit;
          end;
        end;
        DetectGas;
        FindNormalRandoms;
      Until InvFull;
    end;


    Function CheckPick: Boolean;
    var
      gx, gy: Integer;
    begin
      if not loggedin then exit;
      GameTab(4);
      Case Players[CurrentPlayer].Booleans[0] of
        True:
        begin
          GameTab(5);
          wait(100);
          If findDTM(Pick, gx, gy, MIX1, MIY1, MIX2, MIY2)then
          begin
            Ndbug('Pick was weilded');
            Result := True;
            exit;
          end else
          begin
            nDbug('Pick was not weilded!!!');
            nDbug('Please give your players picks!');
            KillPlayer;
            exit;
          end;
        end;
       
        False:
        begin
          GameTab(4);
          wait(100);
          If findDTM(Pick, gx, gy, MIX1, MIY1, MIX2, MIY2)then
          begin
            Ndbug('Pick was in the Inventory');
            Result := True;
            exit;
          end else
          begin
            nDbug('Pick was not in the Inventory!!!');
            nDbug('Please give your players picks!');
            KillPlayer;
            exit;
          end;
        end;
      end;
    end;


    Procedure Report;
    var I : Integer;
    begin
      Writeln(' _________________________________________________');
      Writeln('/                 noidea''s VWM''er                 \');
      Writeln('|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| ');
      writeln(Padr('| Time Running   : ' + TimeRunning,50) + '|');
      Writeln(padr('| Total mined    : ' + Inttostr(Rocks), 50)+ '|');
      Writeln(padr('| Total gasses   : ' + IntToStr(Gasses), 50)+ '|');
      Writeln(padr('| Total loads    : ' + inttostr(p), 50)+ '|');
      If Gems > 0 then
      Writeln(padr('| Total gems     : ' + inttostr(Gems),50)+ '|');
      if Responds > 0 then
      Writeln(padr('| Total Responds : ' + inttostr(Responds), 50)+ '|');
      if fightss > 0 then
      Writeln(padr('| Fights         : ' + inttostr(fightss),50)+ '|');
      if NewPicks > 0 then
      Writeln(Padr('| NewPicksGotton : ' + inttostr(NewPicks), 50)+ '|');
      if headsrepaired > 0 then
      Writeln(padr('| Picks repaired : ' + inttostr(headsrepaired), 50) + '|');
      if Relocates > 0 then
      writeln(Padr('| Relocated      : ' + inttostr(relocates), 50) + '|');
      Writeln('|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|');
      Writeln('|  Player  |  Active  |  Loads  |  Mined  |  Gems |');
      for I := 0 to (HowManyPlayers - 1)  do
      begin
        Writeln(Padr(padr('|    ' +inttostr(i) , 11)+ '|     ' + Left(BoolToStr(Players[I].Active), 1) + '    |   ' + padr((inttostr(Players[I].Integers[1])), 6) + '|   ' + Padr((inttostr(Players[I].integers[0])), 6) + '|  ' + padr(inttostr(Players[CurrentPlayer].integers[2]),5) + '', 50)+'|');
      end;
      Writeln('\_________________________________________________/');
    end;

    Procedure PickColours;
    var
      x, y: Integer;
    begin
      if FindColorTolerance(x, y, 4474186, 584, 216, 598, 229, 5) then
        ThePick := 'iron';
      if FindColorTolerance(x, y, 3951676, 584, 216, 598, 229, 5) then
        ThePick := 'addy';
      if FindColorTolerance(x, y, 6645357, 584, 216, 598, 229, 5) then
        ThePick := 'steel';
      if FindColorTolerance(x, y, 5519673, 584, 216, 598, 229, 5) then
        ThePick := 'mith';
      if FindColorTolerance(x, y, 6116415, 584, 216, 598, 229, 5) then
        ThePick := 'rune';
      if FindColorTolerance(x, y, 1913151, 584, 216, 598, 229, 5) then
        ThePick := 'bronz';
      ndbug('Using ' + (ThePick) + ' pick.');
    end;



    Procedure DoTheCheck;
    var
      x, y, i: Integer;
    begin
      if not Players[currentplayer].booleans[0] then
      begin
      if not FindDTM(Pick, x, y, 553, 210, 599, 249)then
      For i := 1 to 28 do
      begin
        mmouseItem(i);
        wait(100+random(100));
        if isuptext('ick')then
        begin
          GetmousePos(x, y)
          holdmouse(x, y, true);
          wait(70+random(70));
          mmouseItem(1);
          getmousepos(x, y);
          wait(100+random(50));
          releasemouse(x, y, true);
          writeln('Please keep unweilded, in-use picks, in first inv slot');
          break;
        end;
      end;
    end;
    end;

    Procedure SetupPlayer;
    begin
      if not loggedin then LoginPlayer;
      MaxWait := 0;
      case Lowercase(Players[CurrentPLayer].strings[0])of
        'tin': MaxWait := 6500;
        'clay': Maxwait := 7000;
        'iron': MaxWait := RandomRange(4000, 5000);
        'silver': MaxWait := 11000;
      end;
      DoTheCheck;
      if CheckPick then
        PickColours;
      makeCompass('n');
      setangle(true);
    end;






    var
      h: Integer;
    begin
      setupsrl;
      ScriptID := '1142';
      SRLID := SRLStatsID;
      SRLPassword := SRLStatsPass;
      LoadDTMs;
      DeclarePlayers;
      ActivateClient;
      MouseSpeed := 19;
      SymbolAccuracy := 0.45;
      repeat
        h := 0;
        If not Loggedin then LoginPlayer;
        SetupPlayer;
        repeat
          SetRun(True);
          ToMine;
          flag;
          wait(300+random(200));
          MineRocks;
          ToBank;
          Bankstuff;
          inc(h);
          inc(p);
          Inc(Players[CurrentPlayer].integers[1]);
          ReportVars[2] := ReportVars[2] + 1;
          SRLRandomsReport;
          report;
          Disguise('Player ' +inttostr(CurrentPlayer) + ' mined '+ inttostr(Players[CurrentPlayer].integers[0]) + ' ores');
        until not loggedin or(h >= Loadsb4switch);
        Logout;
        if HowManyPlayers = 1 then wait(60000*2+random(60000));
        NextPlayer(Players[CurrentPlayer].Active);
        If not loggedin then loginplayer;
      until allplayersinactive
      FreeDTMs;
    end.

    /
    /

    Thanks to Masterkill for his auto responder, its great!
    Thanks to NaumanAklaQ, I took the responder out of his script.
    Thanks to munk for his findMMbank function.
    Thanks to the SRL team.
    Thanks to WT-Fakawi for his recent donation to keep SRL up!

    Long live SRL.
    We shall be the last generation of RS2 cheating...

    But fixing the gas finding is up to you!
    Woot woot.

  13. #38
    Join Date
    Jan 2008
    Location
    NC, USA.
    Posts
    4,429
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Updated!
    I made so vital ujustmants (Dont know how to spell that ), the little tiny things that I never noticed, after giving this a long hard look.

    Fixed the pick DTM, sorry, there isnt anything I can do about the gas. SRL needs an updated finder...
    Quote Originally Posted by irc
    [00:55:29] < Guest3097> I lol at how BenLand100 has become noidea
    [01:07:40] <@BenLand100> i'm not noidea i'm
    [01:07:44] -!- BenLand100 is now known as BenLand42-
    [01:07:46] <@BenLand42-> shit
    [01:07:49] -!- BenLand42- is now known as BenLand420
    [01:07:50] <@BenLand420> YEA

  14. #39
    Join Date
    Jan 2009
    Posts
    31
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    i get this error
    Line 581: [Error] (16893:28): Invalid number of parameters in script

  15. #40
    Join Date
    Jan 2008
    Location
    NC, USA.
    Posts
    4,429
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Quote Originally Posted by mike1994r View Post
    i get this error
    Line 581: [Error] (16893:28): Invalid number of parameters in script
    Thanks!
    Please redownload.

    Updated to 0.76b!
    Quote Originally Posted by irc
    [00:55:29] < Guest3097> I lol at how BenLand100 has become noidea
    [01:07:40] <@BenLand100> i'm not noidea i'm
    [01:07:44] -!- BenLand100 is now known as BenLand42-
    [01:07:46] <@BenLand42-> shit
    [01:07:49] -!- BenLand42- is now known as BenLand420
    [01:07:50] <@BenLand420> YEA

  16. #41
    Join Date
    Jan 2009
    Posts
    31
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    wow that was fast

  17. #42
    Join Date
    Jan 2008
    Location
    NC, USA.
    Posts
    4,429
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default


    Be sure to tell me how it works please
    Quote Originally Posted by irc
    [00:55:29] < Guest3097> I lol at how BenLand100 has become noidea
    [01:07:40] <@BenLand100> i'm not noidea i'm
    [01:07:44] -!- BenLand100 is now known as BenLand42-
    [01:07:46] <@BenLand42-> shit
    [01:07:49] -!- BenLand42- is now known as BenLand420
    [01:07:50] <@BenLand420> YEA

  18. #43
    Join Date
    Jan 2009
    Posts
    31
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    i get this
    Line 696: [Hint] (17008:1): Variable 'I' never used in script
    Line 760: [Hint] (17072:1): Variable 'A' never used in script

  19. #44
    Join Date
    Jan 2008
    Location
    NC, USA.
    Posts
    4,429
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Thats fine. IT should still load SMART and continue on with the script.
    Quote Originally Posted by irc
    [00:55:29] < Guest3097> I lol at how BenLand100 has become noidea
    [01:07:40] <@BenLand100> i'm not noidea i'm
    [01:07:44] -!- BenLand100 is now known as BenLand42-
    [01:07:46] <@BenLand42-> shit
    [01:07:49] -!- BenLand42- is now known as BenLand420
    [01:07:50] <@BenLand420> YEA

  20. #45
    Join Date
    Jan 2009
    Posts
    31
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    ok ill try it now



    i got this now
    [Runtime Error] : Exception: Access violation at address 006165B1 in module 'scar.exe'. Read of address 00000000 in line 355 in script


    its working now i restarted my computer and it works perfectly

    sorry for all the edits but it goes to the mining area and just sits there with no errors

  21. #46
    Join Date
    Jan 2008
    Location
    NC, USA.
    Posts
    4,429
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Make sure you have the exact name filled out of the ore you want to mine. And please make sure its lowercase
    Quote Originally Posted by irc
    [00:55:29] < Guest3097> I lol at how BenLand100 has become noidea
    [01:07:40] <@BenLand100> i'm not noidea i'm
    [01:07:44] -!- BenLand100 is now known as BenLand42-
    [01:07:46] <@BenLand42-> shit
    [01:07:49] -!- BenLand42- is now known as BenLand420
    [01:07:50] <@BenLand420> YEA

  22. #47
    Join Date
    Jan 2009
    Posts
    31
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    this is the best it did

    / noidea's VWM'er \
    |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
    | Time Running : 56 Seconds |
    | Total mined : 0 |
    | Total gasses : 0 |
    | Total loads : 1 |
    |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
    | Player | Active | Loads | Mined | Gems |
    | 0 | T | 1 | 0 | 0 |
    | 1 | T | 0 | 0 | 0 |
    | 2 | T | 0 | 0 | 0 |
    | 3 | T | 0 | 0 | 0 |
    | 4 | T | 0 | 0 | 0 |
    | 5 | T | 0 | 0 | 0 |
    \_________________________________________________/

  23. #48
    Join Date
    Jan 2008
    Location
    NC, USA.
    Posts
    4,429
    Mentioned
    0 Post(s)
    Quoted
    4 Post(s)

    Default

    Are the exact ores filled out like
    'tin' or 'clay' or 'iron' or 'silver' ?
    It works for me.
    Quote Originally Posted by irc
    [00:55:29] < Guest3097> I lol at how BenLand100 has become noidea
    [01:07:40] <@BenLand100> i'm not noidea i'm
    [01:07:44] -!- BenLand100 is now known as BenLand42-
    [01:07:46] <@BenLand42-> shit
    [01:07:49] -!- BenLand42- is now known as BenLand420
    [01:07:50] <@BenLand420> YEA

  24. #49
    Join Date
    Jan 2009
    Posts
    31
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    yea it kinda works but sometimes it doesnt logg in and then ill have to restart the scripts

  25. #50
    Join Date
    Feb 2007
    Posts
    16
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    _________________________________________________
    / noidea's VWM'er 0.76b \
    |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
    | Time Running : 2 Hours, 48 Minutes and 52 Seconds|
    | Total mined : 392 |
    | Total gasses : 0 |
    | Total loads : 19 |
    | Fights : 16 |
    | Relocated : 5 |
    |~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
    | Player | Active | Loads | Mined | Gems |
    | 0 | T | 11 | 239 | 0 |
    | 1 | F | 8 | 153 | 0 |
    \_________________________________________________/
    i cant get the script to last more than 3 hours, my characters always get lost. it might be just a guess.. but since i have slow internet(64kbs) . im guessing the game cant keep up with the script, it tries to do one procedure, but when the game doesnt respond in time the script just continues, btw this was the walking procedures.

Page 2 of 3 FirstFirst 123 LastLast

Thread Information

Users Browsing this Thread

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

Similar Threads

  1. [SRL4#4]Varrock West Oak Chopper!![Srl4#4]
    By [-jesus-] in forum RS3 Outdated / Broken Scripts
    Replies: 12
    Last Post: 01-09-2008, 05:11 PM

Posting Permissions

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