Results 1 to 3 of 3

Thread: Help me!?

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

    Unhappy Help me!?

    Okay, so I've been having this issue where the script just randomly stops, and I don't know why.

    My Cut_ChopTree procedure is set to check the length of the T2DPointArray, and when I Writeln('Length:' + IntToStr(Length(T2D[k]))); I get this:

    Code:
    Length:161
    Length:65
    Length:45
    Length:36
    Length:20
    Length:51
    Length:26
    Length:135
    Length:109
    Length:53
    ^ That's what works, but when the script "randomly stops" like I mentioned before, the debug box reads:

    Code:
    Length:2
    Length:1
    Length:1
    Length:1
    Length:4
    Length:3
    Length:3
    Length:1
    Length:1
    ... and it repeats that in the debug box extremely fast until I stop the script.

    If you don't know what I mean, you can test it out, if you aren't too lazy.

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

    const
      RunOn = True;//Turn False if you want run on.

    var
      HatchetDTM : Array of Integer;
      x, y, c, NumOfLogs, TotalProggies : Integer;
      TreeColor : TIntegerArray;
      XpGain : TExtendedArray;
      TreePoint : TPoint;
     
    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] := 200;//How many logs to cut?
      Players[0].BoxRewards := ['Xp', 'mote', 'ostume'];
     
     {Players[1].Name := '';
      Players[1].Pass := '';
      Players[1].Nick := '';
      Players[1].Active := True;
      Players[1].Pin := '';
      Players[1].Strings[0] := '';//Which tree to cut?
      Players[1].Integers[0] := 000;//How many logs to cut?
      Players[1].BoxRewards := ['Xp', 'mote', 'ostume'];}

    end;

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

    function S_LevelUp: Boolean;
    begin
      if ClickContinue(True, False)then
      begin
        Writeln('Congratulations, you have gained a Woodcutting level!');
        Result := True;
      end;
    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('78DA638C676060E8614001AE31690CFC409A1' +
           '188FF0301633090B180010D302291403A1048CC22A0260448F413' +
           '501309243A08A84902129D04D42403895EFC6A00F1EB0B8F');
    end;

    procedure Cut_FindHatchet;
    var
      b: Boolean;
      i: Integer;
    begin
      GameTab(4);
      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.');
          Wait(80 + Random(100));
          Logout;
          Players[CurrentPlayer].Active := False;
          Exit;
        end;
      FreeDTM(HatchetDTM[i]);
    end;

    procedure Cut_TreeColors;
    begin
      SetArrayLength(TreeColor, 4);
        TreeColor := [6266770, 1199164, 7774605, 1718835];//10075304
      case LowerCase(Players[CurrentPlayer].Strings[0])of
        'tree': c := 0;
        'oak': c := 1;
        'willow': c := 2;
        'yew': c := 4;
      else
        begin
          Writeln('No tree specified, logging out.');
          Wait(80 + Random(100));
          Logout;
          Players[CurrentPlayer].Active := False;
          Exit;
        end;
      end;
    end;

    function Cut_TreeCutDown: Boolean;
    var
      TrCols : TPointArray;
    begin
      FindColorsTolerance(TrCols, TreeColor[c], TreePoint.x - 25, TreePoint.y - 25, TreePoint.x + 25, TreePoint.y + 25, 15);
      if(Length(TrCols) < 5)then
      begin
        //Writeln('Tree has been cut down.');
        Result := True;
      end;
    end;

    procedure Cut_ChopTrees;
    var
      fx, fy, k : Integer;//fx, fy : Temp. coords.
      s, e : String;
      TPA : TPointArray;
      T2D : T2DPointArray;
    begin
      ColorToleranceSpeed(2);
      repeat
        FindColorsSpiralTolerance(fx, fy, TPA, TreeColor[c], MSX1, MSY1, MSX2, MSY2, 15);//Stores the color's x, y coords as TPoints.
        T2D := SplitTPAEx(TPA, 6, 6);//Splits TPA into boxes.
        //DebugATPA(T2D, '');
        if Length(T2D) = 0 then Exit;
        SortATPAFromFirstPoint(T2D, Point(MSCX, MSCY));

        for k := 0 to High(T2D) do
        begin
          Writeln('Length:' + IntToStr(Length(T2D[k])));
          if(Length(T2D[k]) < 50)then Continue;
          MiddleTPAEx(T2D[k], fx, fy);//Stores coords of the middle TPointArray to x, y.
          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);
            TreePoint := IntToPoint(x, y);
            repeat
              S_MyAntiBan;
              Wait(80 + Random(5000));
              if S_LevelUp then Continue;
            until(Cut_TreeCutDown or InvFull);
          end;
        end;
      until(InvFull or not LoggedIn);
      ColorToleranceSpeed(1);
    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;
          Players[CurrentPlayer].Active := False;
          Exit;
        end;
      end;
      S_FindRandoms;
    end;

    {****************************
     Function Prg_PlayerActivity;
     By: Drags111
     ****************************}


    function Prg_PlayerActive(i : Integer): String;
    begin
      if Players[i].Active then Result := 'T' else Result := 'F';
    end;

    procedure Prg_ExpGained(var g : Integer);
    begin
      SetArrayLength(XpGain, 4)
        XpGain := [25, 37.5, 67.5, 175];
      case Lowercase(Players[CurrentPlayer].Strings[0])of
        'tree' : g := 0;
        'oak' : g := 1;
        'willow' : g := 2;
        'yew' : g := 3;
      end;
    end;
     

    procedure Prg_ProgReport;
    var
      i, g : Integer;
    begin
      Prg_ExpGained(g);
      Players[i].Integers[9] := NumOfLogs / 27;
      Players[i].Integers[10] := NumOfLogs;
      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(PadR('|  Exp Gained: ' + FloatToStr(NumOfLogs * XpGain[g]), 48) + '|');
      Writeln('|_______________________________________________|');
      Writeln('|________________Player''s Stats_________________|');
     {Writeln('|      ____      ___      _____      ____       |');}
      Writeln('|      Nick      T/F      Loads      Logs       |');
      Writeln('|      ¯¯¯¯      ¯¯¯      ¯¯¯¯¯      ¯¯¯¯       |');
      for i := 0 to High(Players)do
        Writeln('|      ' + PadR(Players[i].Nick, 10) + PadR(Prg_PlayerActive(i), 9)
                          + PadR(IntToStr(Players[i].Integers[9]), 11)
                          + PadR(IntToStr(Players[i].Integers[10]), 11) + '|');
      Writeln('|_______________________________________________|');
    end;

    procedure F_Setup;
    begin
      ClearDebug;
      SMARTSetupEx(152, False, True, False);
      Wait(5000);
      SetTargetDC(SmartGetDC);
      SetupSRL;
      ActivateClient;
      DeclarePlayers;
      LoginPlayer;
      SetAngle(True);
      if RunOn then SetRun(True);
      S_HatchetDTMs;
      Cut_FindHatchet;
    end;

    begin
      F_Setup;
      repeat
        repeat
          if(ExistsItem(1))then
          begin
            Cut_TreeColors;
            repeat
              Cut_ChopTrees;
              S_FindRandoms;
            until(InvFull);
            Cut_DropLogs;
            Prg_ProgReport;
          end;
        until(NumOfLogs >= Players[CurrentPlayer].Integers[0])or(not LoggedIn);
        NextPlayer(False);
      until False;
    end.

    Please help me!

    Thanks.

  2. #2
    Join Date
    Dec 2008
    Location
    In a galaxy far, far away...
    Posts
    584
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    It maybe just because SMART is losing focus, and is unable to find the colors... Update/Re-Download rev and/or SMART, maybe that'll work.



    ~NS

  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 Nadeem View Post
    It maybe just because SMART is losing focus, and is unable to find the colors... Update/Re-Download rev and/or SMART, maybe that'll work.



    ~NS
    Hmm alright I'll give it a try, thanks.

    EDIT: It still does the same thing.. it's still as if it's repeating the FindColorSpiralTolerance really fast. Like 100s of lines of the length appear in the debug box in seconds. Sometimes it will recover from this, but more often than not, it just sits there.
    Last edited by Coh3n; 06-11-2009 at 10:42 PM.

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
  •