Results 1 to 5 of 5

Thread: Finding trees problem..

  1. #1
    Join Date
    Apr 2008
    Location
    Marquette, MI
    Posts
    15,252
    Mentioned
    138 Post(s)
    Quoted
    680 Post(s)

    Unhappy Finding trees problem..

    Hello!

    Here's my problem:
    It logs in, finds the hatchet, then stands there. In my ChopTrees procedure I added in if(Length(TPA) < 40)then Continue; ... if I take that line out, the mouse jolts around the screen back and forth at every color it finds, clicking every once in a while. I put in the if(Length... line to get rid of the "spazzing". Apparently it's not working. I also tried fooling around with the Length(TPA) < __, but still nothing happened.

    Also, with all my Writeln's in there, 'Found length.' never shows up. I'm playing with the values now, but I'm not having any luck.

    If anyone has the solution that'd be great!

    SCAR Code:
    program PowerChopper;
      //{.Include SRL\SRL\Misc\SMART.SCAR}
      {.include SRL\SRL.scar}

    var
      HatchetDTM : Array of Integer;
      x, y, c, NumOfLogs, TotalProggies : Integer;
      TreeColor : TIntegerArray;
     
    procedure DeclarePlayers;
    begin
      HowManyPlayers := 1;
      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer := 0;

      Players[0].Name := '';
      Players[0].Pass := '';
      Players[0].Nick := '';
      Players[0].Active := True;
      Players[0].Pin := '';
      Players[0].Strings[0] := 'willow';//Which tree to cut?
      Players[0].Integers[0] := 270;//How many logs to cut?
      Players[0].BoxRewards := ['Xp', 'mote', 'ostume'];
    end;

    procedure S_FindRandoms;
    begin
      LampSkill := 'woodcutting';
      FindNormalRandoms;
    end;

    procedure S_MyAntiBan;
    begin
      case Random(70) of
        0: RandomMovement;
        1: BoredHuman;
        2: HoverSkill('random', false);
        3: RandomRClick;
        4: begin
             case Random(2) of
               0: begin
                    KeyDown(VK_RIGHT);
                    Wait(50 + Random(1300));
                    KeyUp(VK_RIGHT);
                    Wait(60 + Random(2000));
                    KeyDown(VK_LEFT);
                    Wait(70 + Random(1100));
                    KeyUp(VK_LEFT);
                  end;
               1: begin
                    KeyDown(VK_LEFT);
                    Wait(50 + Random(1300));
                    KeyUp(VK_LEFT);
                    Wait(60 + Random(2000));
                    KeyDown(VK_RIGHT);
                    Wait(70 + Random(1100));
                    KeyUp(VK_RIGHT);
                  end;
              end;
           end;
        5: begin
             KeyDown(VK_LEFT);
             Wait(100 + Random(1200));
             KeyUp(VK_LEFT);
           end;
        6: begin
             KeyDown(VK_RIGHT);
             Wait(150 + Random(1100));
             KeyUp(VK_RIGHT);
           end;
        7..69:
      end;
    end;


    procedure S_HatchetDTMs;
    begin
     SetArrayLength(HatchetDTM, 7);//[0]:= Bronze, [6]:= Rune
       HatchetDTM[0] := DTMFromString('78DA630C646260D8C4C8800C7CAC9519F8813' +
           '44C94D113A86617AA1A982C5C8D1B50CD36026ABC816AD6125013' +
           '0C54B38E809A504C3763A80921EC1E00949107EF');
       HatchetDTM[1] := DTMFromString('78DA630C626260D8C4C8800C02BDBD19F8813' +
           '448F43F1030BA03D5EC47550391859140DA0DA8662B01355E4035' +
           '6B09A80906AA5947404D2850CD06026A42806AB6E157030033F30' +
           'C28');
       HatchetDTM[2] := DTMFromString('78DA630C626260D8C8C8800CCAF3F318F8813' +
           '448F43F10307A02D5EC40550391859140DA0DA8660B01355E4035' +
           '6B09A80904AA5947404D28A69BB1AAD98A5F0D0090050C8D');
       HatchetDTM[3] := DTMFromString('78DA63F4676260D8C0C8800C44454418F8813' +
           '448F43F1030BA03D5EC43550391859140DA05A8661701351E4035' +
           'EB09A80900AA5947404D28A69BB1AAD98A5F0D0095870B78');
       HatchetDTM[4] := DTMFromString('78DA630C646260D8C8C8800C1C1CE319F8813' +
           '44C94D10DA8E600AA1A982C5C8D2B50CD0E026A3C806A36105013' +
           '0054B38E809A504C3763A80901AAD9865F0D00C5940824');
       HatchetDTM[5] := DTMFromString('78DA63EC64626038C0C8800C9C829D18F8813' +
           '44C94B101A8E614AA1A982C8A9A7D04D4F402D5EC2742CD21026A' +
           '6A816AAEE05703006FA208C7');
       HatchetDTM[6] := DTMFromString('78DA630C606260D8C8C8800C5CA2531944803' +
           '44C94D11DA8662FAA1A982C5C8D1B50CD56026ABC806AD6125013' +
           '0C54B38E809A504C3763A80901AAD9865F0D00E749084A');
    end;

    procedure Cut_FindHatchet;
    var
      b: Boolean;
      i: Integer;
    begin
      for i:= 0 to 6 do
        if(FindDTM(HatchetDTM[i], x, y, MIX1, MIY1, MIX2, MIY2))then
        begin
          b:= True;
          Break;
        end;
        if(b = True)then
          Writeln('Found hatchet.')
        else
        begin
          Writeln('Didn''t find hatchet, logging out.');
          LogOut;
        end;
      FreeDTM(HatchetDTM[i]);
    end;

    procedure Cut_TreeColors;
    begin
      SetArrayLength(TreeColor, 4);
          TreeColor := [6266770, 1199164, 8497045, 1718835];
      case LowerCase(Players[CurrentPlayer].Strings[0]) of
        'tree': c := 0;
        'oak': c := 1;
        'willow': c := 2;
        'yew': c := 3;
      else
        begin
          Writeln('No tree specified, logging out.');
          Logout;
        end;
      end;
    end;

    procedure Cut_ChopTrees;
    var
      fx, fy, k : Integer;//fx, fy : Temp. coords.
      s, e : String;
      TPA : TPointArray;
      T2D : T2DPointArray;
    begin
      repeat
        FindColorsSpiralTolerance(fx, fy, TPA, TreeColor[c], MSX1, MSY1, MSX2, MSY2, 5);//Stores the color's x, y coords as TPoints.
        Writeln('Found tree color.');
        T2D := SplitTPAEx(TPA, 4, 5);//Splits TPA into boxes.
        Writeln('Split TPA.');
        if Length(T2D) = 0 then exit;
        SortATPAFromFirstPoint(T2D, Point(MSCX, MSCY));
        Writeln('Sorted T2D.');
        for k := 0 to High(T2D) do
        begin
          if(Length(T2D[k]) < 40)then
          begin
            Continue;
            Writeln('Found length.');
          end;
          MiddleTPAEx(T2D[k], fx, fy);//Stores coords of the middle TPointArray to x, y.
          Writeln('Stored middle T2D.');
          Wait(30 + Random(20));
          MMouse(fx, fy, 4, 4);
          s := RS_GetUpText;
          e := Players[CurrentPlayer].Strings[0];
          if((Pos('hop', s) > 0) and (Pos(Copy(e, 2, Length(e)), s) > 0))then
          begin
            GetMousePos(x, y);
            Wait(80 + Random(100));
            Mouse(x, y, 4, 4, True);
            repeat
              Wait(80 + Random(100));
              S_MyAntiBan;
            until(not(IsUpText('hop')) or (InvFull));
          end;
        end;
      until(InvFull or not(LoggedIn));
    end;

    procedure Cut_DropLogs;
    var a : Integer;
    begin
      if(InvFull)then
      begin
        Wait(80 + Random(100));
        for a := 2 to 28 do
          DropItem(a);
        NumOfLogs := NumOfLogs + 27;
        if(NumOfLogs >= Players[CurrentPlayer].Integers[0])then
        begin
          Writeln('Cut desired number of logs, logging out.');
          Wait(80 + Random(100));
          Logout;
        end;
      end;
      S_FindRandoms;
    end;

    procedure F_ProgReport;
    begin
      Inc(TotalProggies);
      Writeln(' _______________________________________________');
      Writeln(PadR('|            Coh3n''s Power Chopper', 48) + '|');
      Writeln('|_________________First Script__________________|');
      Writeln('|                                               |');
      Writeln(PadR('|  Time run: ' + TimeRunning, 48) + '|');
      Writeln(PadR('|  Loads: ' + IntToStr(NumOfLogs / 27), 48) + '|');
      Writeln(PadR('|  Logs: ' + IntToStr(NumOfLogs), 48) + '|');
      Writeln('|_______________________________________________|');
    end;

    procedure F_Setup;
    begin
      //SMARTSetupEx(152, False, True, False);
      //Wait(5000);
      //SetTargetDC(SmartGetDC);
      SetupSRL;
      ActivateClient;
      DeclarePlayers;
      LoginPlayer;
      SetAngle(True);
      S_HatchetDTMs;
      Cut_FindHatchet;
    end;


    begin
      F_Setup;
      repeat
        if(ExistsItem(1))then
        begin
          Cut_TreeColors;
          Cut_ChopTrees;
          Cut_DropLogs;
          F_ProgReport;
          S_FindRandoms;
        end else
          Logout;
      until(AllPlayersInactive);
    end.

    Thanks.
    Last edited by Coh3n; 06-04-2009 at 05:26 AM.

  2. #2
    Join Date
    Oct 2006
    Location
    ithurtsithurtsithurtsithurts
    Posts
    2,930
    Mentioned
    7 Post(s)
    Quoted
    135 Post(s)

    Default

    I'm not sure if it would help or not, but try using a larger area when splitting the TPAs to begin with.

    Edit: Also, try changing this:
    SCAR Code:
    if(Length(TPA) < 40)then Continue;
    To this (or something like it):
    SCAR Code:
    if(Length(T2D[k]) < 40)then Continue;
    Last edited by senrath; 06-04-2009 at 01:36 AM.

  3. #3
    Join Date
    Apr 2008
    Location
    Marquette, MI
    Posts
    15,252
    Mentioned
    138 Post(s)
    Quoted
    680 Post(s)

    Default

    Quote Originally Posted by senrath View Post
    I'm not sure if it would help or not, but try using a larger area when splitting the TPAs to begin with.

    Edit: Also, try changing this:
    SCAR Code:
    if(Length(TPA) < 40)then Continue;
    To this (or something like it):
    SCAR Code:
    if(Length(T2D[k]) < 40)then Continue;
    Thanks! Unfortunately, the same thing happens.

    P.S. Your "interesting fact" made me laugh.

  4. #4
    Join Date
    Oct 2006
    Location
    ithurtsithurtsithurtsithurts
    Posts
    2,930
    Mentioned
    7 Post(s)
    Quoted
    135 Post(s)

    Default

    Try using a smaller value, instead of 40. Maybe, like 10, or so. And I'm glad you liked it.

  5. #5
    Join Date
    Apr 2008
    Location
    Marquette, MI
    Posts
    15,252
    Mentioned
    138 Post(s)
    Quoted
    680 Post(s)

    Default

    Quote Originally Posted by senrath View Post
    Try using a smaller value, instead of 40. Maybe, like 10, or so. And I'm glad you liked it.
    Lol. ;P

    I guess I'll just mess around with it, see where it gets me.

    EDIT: I don't seem to be getting anywhere.

    + I updated the script on the first post.
    Last edited by Coh3n; 06-04-2009 at 05:07 AM.

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
  •