Results 1 to 4 of 4

Thread: Form Help

  1. #1
    Join Date
    May 2007
    Posts
    54
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default Form Help

    Hey I've been messing around with forms today and set one up to work with my powercutter. My question is, if someone selects a certain tree how do I get the preset tree color to automatically show up in the color form. For example, for willow, the default color is 1982520 and I want that to show up in the color box as soon as the person selects willow as their tree, and if they select oak to be their tree to cut, then I want ****** to come up so they don't have to manually get the color themselves. If this post made any sense .. how would I go along doing this? Script with form is below if you need to see my form to help you figure out what I'm talking about .

    SCAR Code:
    {
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //                                           \\
    ||     Scarf4ce's Power Willow Chopper       ||
    ||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||
    ||1) Declare your players.                   ||
    ||2) Drag the cross hairs onto the RS screen ||
    ||3) Start Logged in                         ||
    ||4) Fill out the form                       ||
    ||5) Keep your axe in the first inv slot     ||
    ||6) Hit the play button and watch your lvl  ||
    ||   climb :P.                               ||
    ||7) Post your progress report =].           ||
    ||                                           ||
    ||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||
    ||               Thanks to                   ||
    ||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||
    || - Yohojo for letting me use his Ent       ||
    ||   finding procedure                       ||
    || - JAD for helping me with failsafes       ||
    ||   and for his tutorials that helped me    ||
    ||   with my anti-ban and anti randoms       ||
    || - SRL community with helping me fix       ||
    ||   errors                                  ||
    || - Mad Cow and Starblaster100 for their    ||
     \\  awesome form making tutorials          //
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    }


    program Scarf4cePWC;

    {.include SRL\SRL.SCAR}
    {.include SRL\SRL\Skill\Woodcutting.SCAR}

    var
      Loads, LogsCut: Integer;
      Log, BrokenAxe, AxeHandle, RegularAxe: Integer;

    procedure DeclarePlayers;
    begin
      Status('Loading Players')

      HowManyPlayers := 6;  // How many players are you using?
      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer := 0;

      Players[0].Name := ''; // Runescape username
      Players[0].Pass := ''; // Runescape password
      Players[0].Nick := ''; // 2-4 letters of your Runescape username (No capitals or spaces)
      Players[0].Active := True; //Are you using this player?

      Players[1].Name := '';
      Players[1].Pass := '';
      Players[1].Nick := '';
      Players[1].Active := False;

      Players[2].Name := '';
      Players[2].Pass := '';
      Players[2].Nick := '';
      Players[2].Active := False;

      Players[3].Name := '';
      Players[3].Pass := '';
      Players[3].Nick := '';
      Players[3].Active := False;

      Players[4].Name := '';
      Players[4].Pass := '';
      Players[4].Nick := '';
      Players[4].Active := False;

      Players[5].Name := '';
      Players[5].Pass := '';
      Players[5].Nick := '';
      Players[5].Active := False;

      NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {
      ==============================
    //                               \\
    ||             DTM'S              ||
    \\                               //
      ===============================
    }


    procedure LoadDTMs;
    begin

    Log := DTMFromString('78DA632C666260E0646440067921460CFF813' +
           '448F43F103066314179C880118904D2354035FF19F0AB2905AA11' +
           '22604E23500D0F0135C94035DCF8D50000507909F5');

    BrokenAxe := DTMFromString('78DA633CCAC4C090C1C8800C9A127919FE036' +
       '990E87F2060BC0C54938CAA06220B2381F445A09A04026A8E01D5' +
       'C41050B31FA8A698809AB384CD0100CBBD0D20');

    AxeHandle := DTMFromString('78DA637CCFC4C0E0C6C8800CCA227819FE036' +
       '990E87F2060FC06546389AA06220B2381F473A09A00026ADE00D5' +
       'F81350F316A8C685809A97403541F8D50000D0090D3C');

    RegularAxe := DTMFromString('78DA637461626060676440060DF1BC0CFF813' +
       '448F43F10300601D5FC6740038C482490F604AAF94D408D13500D' +
       '2B237E35F640358204D4F813618E1F50CD1F02EE0906AA61C26F0' +
       'E0099720B7E');

    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  =============================
     //                             \\
    ||             Form              ||
     \\                             //
       =============================   }


    var
      frmDesign : TForm;
      Label1 : TLabel;
      Label2 : TLabel;
      Label3 : TLabel;
      Label4 : TLabel;
      Edit2 : TEdit;
      Edit4 : TEdit;
      ComboBox1 : TComboBox;
      Button1 : TButton;
      ComboBox2 : TComboBox;
      Treename : String;
      Treecolor: Integer;
      AmountofLoads : Integer;
      RunDirec : String;

    procedure SafeInitForm;
    var
      v: TVariantArray;
    begin
      setarraylength(V, 0);
      ThreadSafeCall('InitForm', v);
    end;

    procedure ShowFormModal;
    begin
      frmDesign.ShowModal;
    end;

    procedure SafeShowFormModal;
    var
      v: TVariantArray;
    begin
      setarraylength(V, 0);
      ThreadSafeCall('ShowFormModal', v);
    end;

    procedure ButtonClick(sender: TObject);
    begin
      frmDesign.Caption:= frmDesign.Caption + '.';
      frmDesign.ModalResult:= mrOk;
    end;


    procedure InitForm;
    begin
    frmDesign := CreateForm;
    frmDesign.Left := 250;
    frmDesign.Top := 114;
    frmDesign.Width := 339;
    frmDesign.Height := 267;
    frmDesign.Caption := 'Scarf4ce Power Chopper v1.3';
    frmDesign.Color := clInactiveCaption;
    frmDesign.Font.Color := clWindowText;
    frmDesign.Font.Height := -11;
    frmDesign.Font.Name := 'MS Sans Serif';
    frmDesign.Font.Style := [];
    frmDesign.Visible := False;
    frmDesign.PixelsPerInch := 96;
    Label1 := TLabel.Create(frmDesign);
    Label1.Parent := frmDesign;
    Label1.Left := 17;
    Label1.Top := 29;
    Label1.Width := 90;
    Label1.Height := 17;
    Label1.Caption := 'Tree Name';
    Label1.Font.Color := clWindowText;
    Label1.Font.Height := -16;
    Label1.Font.Name := 'Copperplate Gothic Light';
    Label1.Font.Style := [];
    Label1.ParentFont := False;
    Label2 := TLabel.Create(frmDesign);
    Label2.Parent := frmDesign;
    Label2.Left := 17;
    Label2.Top := 67;
    Label2.Width := 102;
    Label2.Height := 17;
    Label2.Caption := 'Tree Color';
    Label2.Font.Color := clWindowText;
    Label2.Font.Height := -16;
    Label2.Font.Name := 'Copperplate Gothic Light';
    Label2.Font.Style := [];
    Label2.ParentFont := False;
    Label3 := TLabel.Create(frmDesign);
    Label3.Parent := frmDesign;
    Label3.Left := 17;
    Label3.Top := 138;
    Label3.Width := 54;
    Label3.Height := 17;
    Label3.Caption := 'Loads';
    Label3.Font.Color := clWindowText;
    Label3.Font.Height := -16;
    Label3.Font.Name := 'Copperplate Gothic Light';
    Label3.Font.Style := [];
    Label3.ParentFont := False;
    Label4 := TLabel.Create(frmDesign);
    Label4.Parent := frmDesign;
    Label4.Left := 17;
    Label4.Top := 102;
    Label4.Width := 121;
    Label4.Height := 17;
    Label4.Caption := 'Run Direction';
    Label4.Font.Color := clWindowText;
    Label4.Font.Height := -16;
    Label4.Font.Name := 'Copperplate Gothic Light';
    Label4.Font.Style := [];
    Label4.ParentFont := False;
    Edit2 := TEdit.Create(frmDesign);
    Edit2.Parent := frmDesign;
    Edit2.Left := 157;
    Edit2.Top := 65;
    Edit2.Width := 121;
    Edit2.Height := 21;
    Edit2.Hint := 'Use the color picker to choose the color for your tree';
    Edit2.ParentShowHint := False;
    Edit2.ShowHint := True;
    Edit2.TabOrder := 8;
    Edit2.Text := LoadSetting('Scarf4ce Power Chopper v1.3', 'Tree Color');
    Edit4 := TEdit.Create(frmDesign);
    Edit4.Parent := frmDesign;
    Edit4.Left := 156;
    Edit4.Top := 136;
    Edit4.Width := 25;
    Edit4.Height := 21;
    Edit4.Hint := 'How many loads do you want to do per player';
    Edit4.ParentShowHint := False;
    Edit4.ShowHint := True;
    Edit4.TabOrder := 9;
    Edit4.Text := LoadSetting('Scarf4ce Power Chopper v1.3', 'Loads');
    ComboBox1 := TComboBox.Create(frmDesign);
    ComboBox1.Parent := frmDesign;
    ComboBox1.Left := 156;
    ComboBox1.Top := 27;
    ComboBox1.Width := 145;
    ComboBox1.Height := 21;
    ComboBox1.Hint := 'Select the type of tree you are cutting';
    ComboBox1.ItemHeight := 13;
    ComboBox1.ParentShowHint := False;
    ComboBox1.ShowHint := True;
    ComboBox1.TabOrder := 10;
    ComboBox1.Text := LoadSetting('Scarf4ce Power Chopper v1.3', 'Tree Name');;
    ComboBox1.Items.Add('Tree');
    ComboBox1.Items.Add('Oak');
    ComboBox1.Items.Add('Willow');
    ComboBox1.Items.Add('Yew');
    Button1 := TButton.Create(frmDesign);
    Button1.Parent := frmDesign;
    Button1.OnClick := @ButtonClick;
    Button1.Left := 126;
    Button1.Top := 182;
    Button1.Width := 75;
    Button1.Height := 25;
    Button1.Hint := 'Click to start the script';
    Button1.Caption := 'Start';
    Button1.ParentShowHint := False;
    Button1.ShowHint := True;
    Button1.TabOrder := 11;
    ComboBox2 := TComboBox.Create(frmDesign);
    ComboBox2.Parent := frmDesign;
    ComboBox2.Left := 156;
    ComboBox2.Top := 100;
    ComboBox2.Width := 40;
    ComboBox2.Height := 21;
    ComboBox2.Hint := 'Run away direction from fights, ents, etc';
    ComboBox2.ItemHeight := 13;
    ComboBox2.ParentShowHint := False;
    ComboBox2.ShowHint := True;
    ComboBox2.TabOrder := 12;
    ComboBox2.Text := LoadSetting('Scarf4ce Power Chopper v1.3', 'Run Direction');
    ComboBox2.Items.Add('N');
    ComboBox2.Items.Add('E');
    ComboBox2.Items.Add('S');
    ComboBox2.Items.Add('W');
    end;

    procedure FormSetup;
    begin
      Treename      := ComboBox1.Text
      Treecolor     := StrToInt(Edit2.Text)
      AmountofLoads := StrToInt(Edit4.Text)
      RunDirec      := ComboBox2.Text
      SaveSetting('Scarf4ce Power Chopper v1.3', 'Tree Name', ComboBox1.Text);
      SaveSetting('Scarf4ce Power Chopper v1.3', 'Tree Color', Edit2.Text);
      SaveSetting('Scarf4ce Power Chopper v1.3', 'Run Direction', ComboBox2.Text);
      SaveSetting('Scarf4ce Power Chopper v1.3', 'Loads', Edit4.Text);
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  =============================
     //                             \\
    ||           Anti Ban            ||
     \\                             //
       =============================   }


    procedure MyAntiBan;
    var
    Dban : Integer;

    begin
      LeaveScreenEvery(1+Random(4));
      RotateEvery(10 + Random(10));
      RandomRClickEvery(2+Random(5))
      if (not (LoggedIn)) then
      Exit;
      Dban := 0 + Random(120)
      case Dban of

       0: AntiBan;

       1: HoverSkill('Woodcutting', false);

       2: HoverSkill('Attack', false);

       3: begin
            GameTab(5)
            Wait(889 + random(852));
            GameTab(4)
          end;

       4: PickUpMouse;

       5: RandomChatEvery(5 + Random(4));

       6: begin
            case random(5) of
             0: begin
                  TypeSend('Woodcutting lvls ppl?')
                  Wait(2458 + random(1438));
                  TypeSend('48');
                end;

             1: TypeSend('Great.. only 200k more exp to go... -.-');

             2: TypeSend('Omg Woodcutting is so lame and boring..');

             3: TypeSend('Boredd..');

             4: TypeSend('Well only 20 more levels to go.. >=[]');

             5: begin
                  TypeSend('Cant wait till im lvl 70 wc');
                  Wait(2438 + random(1589));
                  TypeSend('Cutting yews is so much faster =]');
                end;

             6: TypeSend('These guys are autoers.. Or are they? X[)');

             7: begin
                  TypeSend('Well you ppl are lame..');
                  Wait(1135 + random(895));
                  TypeSend('Jk =P');
                end;

             8: TypeSend('Hmm.. am i bored, or am i bored? =[]');

             9: begin
                  TypeSend('Anyone see family guy last night?')
                  Wait(1184 + random(854));
                  TypeSend('Well i didnt X[) lol');
                end;
            end;
          end;

       7: HoverSkill('Mining', false);

       8: begin
            GameTab(1);
            Wait(300 + random(232))
            GameTab(2);
            Wait(324 + random(182))
            GameTab(3);
            Wait(287 + random(134))
            GameTab(4);
            Wait(270 + random(54))
            GameTab(5);
            Wait(234 + random(130))
            GameTab(6);
            Wait(324 + random(23))
            GameTab(4);
          end;

       9: MMouse(Random(MSX2), Random(MSY2), 0, 0);

       10: HoverSkill('random', false);
      end;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  ==================================
     //                                   \\
    ||                Ent                  ||
    ||                                     ||
    || Thanks to Yohojo for this Procedure ||
     \\                                   //
       ==================================     }


    procedure EntFinder;
    var
    EX, EY: integer;
    FX, FY: integer;
    SafeEntWait: LongInt;

    begin
      Status('Checking For Ent')
      if (FindObjMultiText(EX, EY, Treename, Treename, Treename, Treecolor, 2)) then
      begin
        MMouse(EX, EY, 0, 0)
        if FindColorTolerance(FX, FY, 55769, 85, 15, 115, 15, 20) then
        begin
          Status('Ent Found');
          MouseFindFlag(645, 83, 2, 2);
          MarkTime(SafeEntWait)
          repeat
            FTWait(5)
            FindNormalRandoms;
            if not (LoggedIn) then
            NextPlayer(False);
          until TimeFromMark(SafeEntWait) > 29000 + Random(10000)
          EntsAvoided := EntsAvoided + 1
        end;
      end;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {
       ==============================
     //                              \\
    ||          Anti-Randoms          ||
     \\                              //
       ==============================
    }


    function FindFastRandoms: Boolean; //Function by WT-Fakawi
    var
    i: Integer;
    begin
    for i := 1 to 9 do
    begin
       case I of
         1: if FindDead then
             Result := True;
         2: if FindMod then
             Result := True;
         3: if FindMime then
             Result := True;
         4: if FindMaze then
             Result := True;
         5: if FindQuiz then
             Result := True;
         6: if FindDemon then
             Result := True;
         7: begin
              if NoGameTab then
              begin
                Result := True;
                Players[CurrentPlayer].loc := 'No GameTab';
                Logout;
                Exit;
              end;
            end;
         8: begin
              if InBlack then
              begin
                Result := True;
                Players[CurrentPlayer].loc := 'InBlack';
                Logout;
                Exit;
              end;
            end;
         9: RC;
       end;
       wait(1);
    end;
    end;

    procedure FindRandoms;
    begin
      FindFastRandoms;
      FindNormalRandoms;
      Wait(20)
      FindTalk;
      Wait(20)
      EntFinder;
      if (FindFight) then
       begin
         RunAwayDirection(RunDirec);
         Wait(8000 + Random(2000));
         RunBack;
       end;
       Wait(20)
       FindTalk;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  =============================
     //                             \\
    ||          Axe Stuff            ||
     \\                             //
       =============================   }


    procedure AxeHeadColors;
    begin
      Wait(300)
      HighestAngle;
      MakeCompass('N');
      GameTab(4)
      FindAxeHeadColor;
    end;

    procedure IsAxeBroken;
    var
    FX, FY, TX, TY: Integer;

    begin
      GameTab(4)
      Wait(450 + random(130))
      if (FindDTM(RegularAxe, FX, FY, MIX1, MIY1, MIX2, MIY2)) and
         (not(FindDTM(BrokenAxe, TX, TY, MIX1, MIY1, MIX2, MIY2))) then
      begin
        Exit;
      end;
      begin
        if (FindDTM(BrokenAxe, TX, TY, MIX1, MIY1, MIX2, MIY2)) and
           (not(FindDTM(RegularAxe, FX, FY, MIX1, MIY1, MIX2, MIY2))) then
        begin
          Writeln('Axe Broken, Switiching Players.')
          NextPlayer(False)
        end;
      end;
    end;

    procedure FindAxeHead;
    begin
      Status('Attempting to find the Axe Head')
      Findhead;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  =============================
     //                             \\
    ||         Tree Chopping         ||
     \\                             //
       =============================   }


    function FindObjMultiText2(var cx, cy: Integer; Ut1, UT2, UT3: string; color,
    tolerance: Integer): Boolean;
    var
    x, y, a, c, i, x1, y1, x2, y2: Integer;
    begin
       Color := Color;
    if (FindColorTolerance(x, y, color, msx1, msy1, msx2, msy2, tolerance)) then
    begin
       x1 := 245;
       y1 := 165;
       x2 := 277;
       y2 := 185;
       repeat
         if (not (Loggedin)) then
           Break;
         a := a + 1;
         if (a = 1) or (a = 3) then
           c := c + 1;
         for i := 1 to c do
         begin
           if (a = 1) then
           begin
             x1 := x1 + 30;
             x2 := x2 + 30;
           end
           else if (a = 2) then
           begin
             y1 := y1 - 20;
             y2 := y2 - 20;
           end
           else if (a = 3) then
           begin
             x1 := x1 - 30;
             x2 := x2 - 30;
           end
           else if (a = 4) then
           begin
             y1 := y1 + 20;
             y2 := y2 + 20;
           end;
           if (x1 = 485) and (x2 = 517) then
             x2 := x2 - 2;
           if (y1 = 325) and (y2 = 345) then
             y2 := y2 - 7;
           if (x2 > 515) then
             Break;
           if (FindColorTolerance(x, y, Color, x1, y1, x2, y2, tolerance)) then
           begin
             MMouse(x, y, 0, 0)
               cx := x;
             cy := y;
             if (IsUpTextMulti(UT1, UT2, UT3)) then
             begin
               Result := True;
               Break;
             end;
           end;
         end;
         if (a = 4) then
           a := 0;
       until (x2 > 515) or (Result = True);
    end;
    end;

    procedure ChopTree;
    var
    TimeMarker: Integer;
    TriesToFindTree: Integer;
    TreeFound: Boolean;
    Result1 : Boolean;

    begin
      If InvFull then
      Exit;
      If not LoggedIn then
      Exit;
      AxeHeadColors;
      Repeat
        Result1 := False;
        Wait(53+Random(47));
        IsAxeBroken;
        Wait(89+Random(24));
        EntFinder;
        Wait(48+Random(23));
        if FindObjMultiText2(x, y, Treename, Treename, Treename, TreeColor, 12) then
        begin
          Wait(20 + Random(29))
          Mouse(x, y, 2, 2, True);
          Wait(21+Random(23))
          FindRandoms;
          Wait(224+Random(284))
          FindAxeHead;
          Wait(540+Random(22))
          MyAntiBan;
          Wait(22+Random(27))
          TreeFound := True;
        end Else
        begin
          Writeln('Could not find tree color')
          Logout;
          Nextplayer(true)
        end;
        Wait(123+random(109));
        if treefound then
        begin
          TriesToFindTree := 0;
          MarkTime (TimeMarker);
          Repeat
            Wait(232+random(100))
            FindRandoms;
            EntFinder;
          Until (InvFull) or (TimeFromMark (TimeMarker) > 5000)  // Add here time to wait till clicking tree again
        end Else
        begin
          Wait(100+random(100)); //waits for tree to come back
          TriesToFindTree := TriesToFindTree + 1;
        end;
      until (InvFull) or (TriesToFindTree > 10);
      if(TriesToFindTree > 10)then
      begin
        Writeln('Took too long to find tree! logging out');
        Logout;
      end;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  ==============================
     //                              \\
    ||          Log Dropping          ||
     \\                              //
       ==============================   }


    procedure DroppingLogs;

    var
    bx, by: Integer;

    begin
      if (InvFull) then
      GameTab(4);
      repeat
        if (FindDTM(Log, bx, by, MIX1, MIY1, MIX2, MIY2)) then
        begin
          Mouse(bx, by, 4, 4, false)
          ChooseOption(bx, by, 'Drop')
          Wait(450+Random(120))
          LogsCut := LogsCut + 1;
        end;
      until (not (FindDTM(Log, bx, by, MIX1, MIY1, MIX2, MIY2)))
     Loads := Loads + 1;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  ==============================
     //                              \\
    ||        Progress Report         ||
     \\                              //
       ==============================   }


    procedure ProgressReport;
    begin
    ClearDebug;
       Writeln('<<_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_>>')
       Writeln('<<      Scarf4ce Place/Tree Power Cutter         ')
       Writeln('<<          Worked For: ' + TimeRunning)
       Writeln('<<          Chopped: ' + IntToStr(LogsCut) + ' Logs ')
       Writeln('<<      Thanks for using my script           ')
       Writeln('<<_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_>>')
       SRLRandomsReport;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  ==============================
     //                              \\
    ||           Main Setup           ||
     \\                              //
       ==============================   }


    procedure Setup;
    begin
      SetupSRL;
      DeclarePlayers;
      LoadDTMs;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    begin
      Wait(2000)
      Setup;
      SafeInitForm;
      SafeShowFormModal;
      FormSetup;
      ActivateClient;
      begin
        if (not (LoggedIn)) then Loginplayer;
        HighestAngle;
        MakeCompass('N')
        repeat
          Wait(2000 + Random(1000))
          DisguiseScar('[' + IntToStr(Loads) + '/' +IntToStr(AmountofLoads) + '] ' +(Players[CurrentPlayer].name) + '')
          ChopTree;
          DroppingLogs;
          ProgressReport;
          if (Loads = AmountofLoads) then
          begin
            HighestAngle;
            MakeCompass('N');
            LogOut;
            NextPlayer(True);
            Loads := 0
          end;
        until (false)
      end;
    end.

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  2. #2
    Join Date
    Jan 2007
    Location
    Kansas
    Posts
    3,760
    Mentioned
    1 Post(s)
    Quoted
    3 Post(s)

    Default

    Ok change your code to this
    SCAR Code:
    {
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //                                           \\
    ||     Scarf4ce's Power Willow Chopper       ||
    ||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||
    ||1) Declare your players.                   ||
    ||2) Drag the cross hairs onto the RS screen ||
    ||3) Start Logged in                         ||
    ||4) Fill out the form                       ||
    ||5) Keep your axe in the first inv slot     ||
    ||6) Hit the play button and watch your lvl  ||
    ||   climb :P.                               ||
    ||7) Post your progress report =].           ||
    ||                                           ||
    ||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||
    ||               Thanks to                   ||
    ||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||
    || - Yohojo for letting me use his Ent       ||
    ||   finding procedure                       ||
    || - JAD for helping me with failsafes       ||
    ||   and for his tutorials that helped me    ||
    ||   with my anti-ban and anti randoms       ||
    || - SRL community with helping me fix       ||
    ||   errors                                  ||
    || - Mad Cow and Starblaster100 for their    ||
     \\  awesome form making tutorials          //
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    }


    program Scarf4cePWC;

    {.include SRL\SRL.SCAR}
    {.include SRL\SRL\Skill\Woodcutting.SCAR}
    {.include SRL/SRL/extended/xAntiBan.scar}

    var
      Loads, LogsCut: Integer;
      Log, BrokenAxe, AxeHandle, RegularAxe: Integer;

    procedure DeclarePlayers;
    begin
      Status('Loading Players')

      HowManyPlayers := 6;  // How many players are you using?
      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer := 0;

      Players[0].Name := ''; // Runescape username
      Players[0].Pass := ''; // Runescape password
      Players[0].Nick := ''; // 2-4 letters of your Runescape username (No capitals or spaces)
      Players[0].Active := True; //Are you using this player?

      Players[1].Name := '';
      Players[1].Pass := '';
      Players[1].Nick := '';
      Players[1].Active := False;

      Players[2].Name := '';
      Players[2].Pass := '';
      Players[2].Nick := '';
      Players[2].Active := False;

      Players[3].Name := '';
      Players[3].Pass := '';
      Players[3].Nick := '';
      Players[3].Active := False;

      Players[4].Name := '';
      Players[4].Pass := '';
      Players[4].Nick := '';
      Players[4].Active := False;

      Players[5].Name := '';
      Players[5].Pass := '';
      Players[5].Nick := '';
      Players[5].Active := False;

      NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {
      ==============================
    //                               \\
    ||             DTM'S              ||
    \\                               //
      ===============================
    }


    procedure LoadDTMs;
    begin

    Log := DTMFromString('78DA632C666260E0646440067921460CFF813' +
           '448F43F103066314179C880118904D2354035FF19F0AB2905AA11' +
           '22604E23500D0F0135C94035DCF8D50000507909F5');

    BrokenAxe := DTMFromString('78DA633CCAC4C090C1C8800C9A127919FE036' +
       '990E87F2060BC0C54938CAA06220B2381F445A09A04026A8E01D5' +
       'C41050B31FA8A698809AB384CD0100CBBD0D20');

    AxeHandle := DTMFromString('78DA637CCFC4C0E0C6C8800CCA227819FE036' +
       '990E87F2060FC06546389AA06220B2381F473A09A00026ADE00D5' +
       'F81350F316A8C685809A97403541F8D50000D0090D3C');

    RegularAxe := DTMFromString('78DA637461626060676440060DF1BC0CFF813' +
       '448F43F10300601D5FC6740038C482490F604AAF94D408D13500D' +
       '2B237E35F640358204D4F813618E1F50CD1F02EE0906AA61C26F0' +
       'E0099720B7E');

    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  =============================
     //                             \\
    ||             Form              ||
     \\                             //
       =============================   }


    var
      frmDesign : TForm;
      Label1 : TLabel;
      Label2 : TLabel;
      Label3 : TLabel;
      Label4 : TLabel;
      Edit2 : TEdit;
      Edit4 : TEdit;
      ComboBox1 : TComboBox;
      Button1 : TButton;
      ComboBox2 : TComboBox;
      Treename : String;
      Treecolor: Integer;
      AmountofLoads : Integer;
      RunDirec : String;

    procedure SafeInitForm;
    var
      v: TVariantArray;
    begin
      setarraylength(V, 0);
      ThreadSafeCall('InitForm', v);
    end;

    procedure ShowFormModal;
    begin
      frmDesign.ShowModal;
    end;

    procedure SafeShowFormModal;
    var
      v: TVariantArray;
    begin
      setarraylength(V, 0);
      ThreadSafeCall('ShowFormModal', v);
    end;

    procedure ButtonClick(sender: TObject);
    begin
      frmDesign.Caption:= frmDesign.Caption + '.';
      frmDesign.ModalResult:= mrOk;
    end;

    procedure ChangeColor(Sender: TObject);//Change these colors to the ones you want
    begin
      LoadSetting('Scarf4ce Power Chopper v1.3', 'Tree Color');
      case ComboBox1.Text of
        'Tree': Edit2.Text:=IntToStr(133);
        'Willow': Edit2.Text:=IntToStr(6565);
        'Oak': Edit2.Text:=IntToStr(32983);
        'Yew': Edit2.Text:=IntToStr(59084);
      end;
    end;


    procedure InitForm;
    begin
    frmDesign := CreateForm;
    frmDesign.Left := 250;
    frmDesign.Top := 114;
    frmDesign.Width := 339;
    frmDesign.Height := 267;
    frmDesign.Caption := 'Scarf4ce Power Chopper v1.3';
    frmDesign.Color := clInactiveCaption;
    frmDesign.Font.Color := clWindowText;
    frmDesign.Font.Height := -11;
    frmDesign.Font.Name := 'MS Sans Serif';
    frmDesign.Font.Style := [];
    frmDesign.Visible := False;
    frmDesign.PixelsPerInch := 96;
    Label1 := TLabel.Create(frmDesign);
    Label1.Parent := frmDesign;
    Label1.Left := 17;
    Label1.Top := 29;
    Label1.Width := 90;
    Label1.Height := 17;
    Label1.Caption := 'Tree Name';
    Label1.Font.Color := clWindowText;
    Label1.Font.Height := -16;
    Label1.Font.Name := 'Copperplate Gothic Light';
    Label1.Font.Style := [];
    Label1.ParentFont := False;
    Label2 := TLabel.Create(frmDesign);
    Label2.Parent := frmDesign;
    Label2.Left := 17;
    Label2.Top := 67;
    Label2.Width := 102;
    Label2.Height := 17;
    Label2.Caption := 'Tree Color';
    Label2.Font.Color := clWindowText;
    Label2.Font.Height := -16;
    Label2.Font.Name := 'Copperplate Gothic Light';
    Label2.Font.Style := [];
    Label2.ParentFont := False;
    Label3 := TLabel.Create(frmDesign);
    Label3.Parent := frmDesign;
    Label3.Left := 17;
    Label3.Top := 138;
    Label3.Width := 54;
    Label3.Height := 17;
    Label3.Caption := 'Loads';
    Label3.Font.Color := clWindowText;
    Label3.Font.Height := -16;
    Label3.Font.Name := 'Copperplate Gothic Light';
    Label3.Font.Style := [];
    Label3.ParentFont := False;
    Label4 := TLabel.Create(frmDesign);
    Label4.Parent := frmDesign;
    Label4.Left := 17;
    Label4.Top := 102;
    Label4.Width := 121;
    Label4.Height := 17;
    Label4.Caption := 'Run Direction';
    Label4.Font.Color := clWindowText;
    Label4.Font.Height := -16;
    Label4.Font.Name := 'Copperplate Gothic Light';
    Label4.Font.Style := [];
    Label4.ParentFont := False;
    Edit2 := TEdit.Create(frmDesign);
    Edit2.Parent := frmDesign;
    Edit2.Left := 157;
    Edit2.Top := 65;
    Edit2.Width := 121;
    Edit2.Height := 21;
    Edit2.Hint := 'Use the color picker to choose the color for your tree';
    Edit2.ParentShowHint := False;
    Edit2.ShowHint := True;
    Edit2.TabOrder := 8;
    Edit2.Text := LoadSetting('Scarf4ce Power Chopper v1.3', 'Tree Color');;
    Edit4 := TEdit.Create(frmDesign);
    Edit4.Parent := frmDesign;
    Edit4.Left := 156;
    Edit4.Top := 136;
    Edit4.Width := 25;
    Edit4.Height := 21;
    Edit4.Hint := 'How many loads do you want to do per player';
    Edit4.ParentShowHint := False;
    Edit4.ShowHint := True;
    Edit4.TabOrder := 9;
    Edit4.Text := LoadSetting('Scarf4ce Power Chopper v1.3', 'Loads');
    ComboBox1 := TComboBox.Create(frmDesign);
    ComboBox1.Parent := frmDesign;
    ComboBox1.Left := 156;
    ComboBox1.Top := 27;
    ComboBox1.Width := 145;
    ComboBox1.Height := 21;
    ComboBox1.Hint := 'Select the type of tree you are cutting';
    ComboBox1.ItemHeight := 13;
    ComboBox1.ParentShowHint := False;
    ComboBox1.ShowHint := True;
    ComboBox1.TabOrder := 10;
    ComboBox1.Text := LoadSetting('Scarf4ce Power Chopper v1.3', 'Tree Name');
    ComboBox1.Items.Add('Tree');
    ComboBox1.Items.Add('Oak');
    ComboBox1.Items.Add('Willow');
    ComboBox1.Items.Add('Yew');
    ComboBox1.Onclick:=@ChangeColor;
    Button1 := TButton.Create(frmDesign);
    Button1.Parent := frmDesign;
    Button1.OnClick := @ButtonClick;
    Button1.Left := 126;
    Button1.Top := 182;
    Button1.Width := 75;
    Button1.Height := 25;
    Button1.Hint := 'Click to start the script';
    Button1.Caption := 'Start';
    Button1.ParentShowHint := False;
    Button1.ShowHint := True;
    Button1.TabOrder := 11;
    ComboBox2 := TComboBox.Create(frmDesign);
    ComboBox2.Parent := frmDesign;
    ComboBox2.Left := 156;
    ComboBox2.Top := 100;
    ComboBox2.Width := 40;
    ComboBox2.Height := 21;
    ComboBox2.Hint := 'Run away direction from fights, ents, etc';
    ComboBox2.ItemHeight := 13;
    ComboBox2.ParentShowHint := False;
    ComboBox2.ShowHint := True;
    ComboBox2.TabOrder := 12;
    ComboBox2.Text := LoadSetting('Scarf4ce Power Chopper v1.3', 'Run Direction');
    ComboBox2.Items.Add('N');
    ComboBox2.Items.Add('E');
    ComboBox2.Items.Add('S');
    ComboBox2.Items.Add('W');
    end;

    procedure FormSetup;
    begin
      Treename      := ComboBox1.Text
      Treecolor     := StrToInt(Edit2.Text)
      AmountofLoads := StrToInt(Edit4.Text)
      RunDirec      := ComboBox2.Text
      SaveSetting('Scarf4ce Power Chopper v1.3', 'Tree Name', ComboBox1.Text);
      SaveSetting('Scarf4ce Power Chopper v1.3', 'Tree Color', Edit2.Text);
      SaveSetting('Scarf4ce Power Chopper v1.3', 'Run Direction', ComboBox2.Text);
      SaveSetting('Scarf4ce Power Chopper v1.3', 'Loads', Edit4.Text);
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  =============================
     //                             \\
    ||           Anti Ban            ||
     \\                             //
       =============================   }


    procedure MyAntiBan;
    var
    Dban : Integer;

    begin
      LeaveScreenEvery(1+Random(4));
      RotateEvery(10 + Random(10));
      RandomRClickEvery(2+Random(5))
      if (not (LoggedIn)) then
      Exit;
      Dban := 0 + Random(120)
      case Dban of

       0: AntiBan;

       1: HoverSkill('Woodcutting', false);

       2: HoverSkill('Attack', false);

       3: begin
            GameTab(5)
            Wait(889 + random(852));
            GameTab(4)
          end;

       4: PickUpMouse;

       //5: RandomChatEvery(5 + Random(4));

       6: begin
            case random(5) of
             0: begin
                  TypeSend('Woodcutting lvls ppl?')
                  Wait(2458 + random(1438));
                  TypeSend('48');
                end;

             1: TypeSend('Great.. only 200k more exp to go... -.-');

             2: TypeSend('Omg Woodcutting is so lame and boring..');

             3: TypeSend('Boredd..');

             4: TypeSend('Well only 20 more levels to go.. >=[]');

             5: begin
                  TypeSend('Cant wait till im lvl 70 wc');
                  Wait(2438 + random(1589));
                  TypeSend('Cutting yews is so much faster =]');
                end;

             6: TypeSend('These guys are autoers.. Or are they? X[)');

             7: begin
                  TypeSend('Well you ppl are lame..');
                  Wait(1135 + random(895));
                  TypeSend('Jk =P');
                end;

             8: TypeSend('Hmm.. am i bored, or am i bored? =[]');

             9: begin
                  TypeSend('Anyone see family guy last night?')
                  Wait(1184 + random(854));
                  TypeSend('Well i didnt X[) lol');
                end;
            end;
          end;

       7: HoverSkill('Mining', false);

       8: begin
            GameTab(1);
            Wait(300 + random(232))
            GameTab(2);
            Wait(324 + random(182))
            GameTab(3);
            Wait(287 + random(134))
            GameTab(4);
            Wait(270 + random(54))
            GameTab(5);
            Wait(234 + random(130))
            GameTab(6);
            Wait(324 + random(23))
            GameTab(4);
          end;

       9: MMouse(Random(MSX2), Random(MSY2), 0, 0);

       10: HoverSkill('random', false);
      end;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  ==================================
     //                                   \\
    ||                Ent                  ||
    ||                                     ||
    || Thanks to Yohojo for this Procedure ||
     \\                                   //
       ==================================     }


    procedure EntFinder;
    var
    EX, EY: integer;
    FX, FY: integer;
    SafeEntWait: LongInt;

    begin
      Status('Checking For Ent')
      if (FindObjMultiText(EX, EY, Treename, Treename, Treename, Treecolor, 2)) then
      begin
        MMouse(EX, EY, 0, 0)
        if FindColorTolerance(FX, FY, 55769, 85, 15, 115, 15, 20) then
        begin
          Status('Ent Found');
          MouseFindFlag(645, 83, 2, 2);
          MarkTime(SafeEntWait)
          repeat
            FTWait(5)
            FindNormalRandoms;
            if not (LoggedIn) then
            NextPlayer(False);
          until TimeFromMark(SafeEntWait) > 29000 + Random(10000)
          EntsAvoided := EntsAvoided + 1
        end;
      end;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {
       ==============================
     //                              \\
    ||          Anti-Randoms          ||
     \\                              //
       ==============================
    }


    function FindFastRandoms: Boolean; //Function by WT-Fakawi
    var
    i: Integer;
    begin
    for i := 1 to 9 do
    begin
       case I of
         1: if FindDead then
             Result := True;
         2: if FindMod then
             Result := True;
         3: if FindMime then
             Result := True;
         4: if FindMaze then
             Result := True;
         5: if FindQuiz then
             Result := True;
         6: if FindDemon then
             Result := True;
         7: begin
              if NoGameTab then
              begin
                Result := True;
                Players[CurrentPlayer].loc := 'No GameTab';
                Logout;
                Exit;
              end;
            end;
         8: begin
              if InBlack then
              begin
                Result := True;
                Players[CurrentPlayer].loc := 'InBlack';
                Logout;
                Exit;
              end;
            end;
         9: RC;
       end;
       wait(1);
    end;
    end;

    procedure FindRandoms;
    begin
      FindFastRandoms;
      FindNormalRandoms;
      Wait(20)
      FindTalk;
      Wait(20)
      EntFinder;
      if (FindFight) then
       begin
         RunAwayDirection(RunDirec);
         Wait(8000 + Random(2000));
         RunBack;
       end;
       Wait(20)
       FindTalk;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  =============================
     //                             \\
    ||          Axe Stuff            ||
     \\                             //
       =============================   }


    procedure AxeHeadColors;
    begin
      Wait(300)
      HighestAngle;
      MakeCompass('N');
      GameTab(4)
      FindAxeHeadColor;
    end;

    procedure IsAxeBroken;
    var
    FX, FY, TX, TY: Integer;

    begin
      GameTab(4)
      Wait(450 + random(130))
      if (FindDTM(RegularAxe, FX, FY, MIX1, MIY1, MIX2, MIY2)) and
         (not(FindDTM(BrokenAxe, TX, TY, MIX1, MIY1, MIX2, MIY2))) then
      begin
        Exit;
      end;
      begin
        if (FindDTM(BrokenAxe, TX, TY, MIX1, MIY1, MIX2, MIY2)) and
           (not(FindDTM(RegularAxe, FX, FY, MIX1, MIY1, MIX2, MIY2))) then
        begin
          Writeln('Axe Broken, Switiching Players.')
          NextPlayer(False)
        end;
      end;
    end;

    procedure FindAxeHead;
    begin
      Status('Attempting to find the Axe Head')
      Findhead;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  =============================
     //                             \\
    ||         Tree Chopping         ||
     \\                             //
       =============================   }


    function FindObjMultiText2(var cx, cy: Integer; Ut1, UT2, UT3: string; color,
    tolerance: Integer): Boolean;
    var
    x, y, a, c, i, x1, y1, x2, y2: Integer;
    begin
       Color := Color;
    if (FindColorTolerance(x, y, color, msx1, msy1, msx2, msy2, tolerance)) then
    begin
       x1 := 245;
       y1 := 165;
       x2 := 277;
       y2 := 185;
       repeat
         if (not (Loggedin)) then
           Break;
         a := a + 1;
         if (a = 1) or (a = 3) then
           c := c + 1;
         for i := 1 to c do
         begin
           if (a = 1) then
           begin
             x1 := x1 + 30;
             x2 := x2 + 30;
           end
           else if (a = 2) then
           begin
             y1 := y1 - 20;
             y2 := y2 - 20;
           end
           else if (a = 3) then
           begin
             x1 := x1 - 30;
             x2 := x2 - 30;
           end
           else if (a = 4) then
           begin
             y1 := y1 + 20;
             y2 := y2 + 20;
           end;
           if (x1 = 485) and (x2 = 517) then
             x2 := x2 - 2;
           if (y1 = 325) and (y2 = 345) then
             y2 := y2 - 7;
           if (x2 > 515) then
             Break;
           if (FindColorTolerance(x, y, Color, x1, y1, x2, y2, tolerance)) then
           begin
             MMouse(x, y, 0, 0)
               cx := x;
             cy := y;
             if (IsUpTextMulti(UT1, UT2, UT3)) then
             begin
               Result := True;
               Break;
             end;
           end;
         end;
         if (a = 4) then
           a := 0;
       until (x2 > 515) or (Result = True);
    end;
    end;

    procedure ChopTree;
    var
    TimeMarker: Integer;
    TriesToFindTree: Integer;
    TreeFound: Boolean;
    Result1 : Boolean;

    begin
      If InvFull then
      Exit;
      If not LoggedIn then
      Exit;
      AxeHeadColors;
      Repeat
        Result1 := False;
        Wait(53+Random(47));
        IsAxeBroken;
        Wait(89+Random(24));
        EntFinder;
        Wait(48+Random(23));
        if FindObjMultiText2(x, y, Treename, Treename, Treename, TreeColor, 12) then
        begin
          Wait(20 + Random(29))
          Mouse(x, y, 2, 2, True);
          Wait(21+Random(23))
          FindRandoms;
          Wait(224+Random(284))
          FindAxeHead;
          Wait(540+Random(22))
          MyAntiBan;
          Wait(22+Random(27))
          TreeFound := True;
        end Else
        begin
          Writeln('Could not find tree color')
          Logout;
          Nextplayer(true)
        end;
        Wait(123+random(109));
        if treefound then
        begin
          TriesToFindTree := 0;
          MarkTime (TimeMarker);
          Repeat
            Wait(232+random(100))
            FindRandoms;
            EntFinder;
          Until (InvFull) or (TimeFromMark (TimeMarker) > 5000)  // Add here time to wait till clicking tree again
        end Else
        begin
          Wait(100+random(100)); //waits for tree to come back
          TriesToFindTree := TriesToFindTree + 1;
        end;
      until (InvFull) or (TriesToFindTree > 10);
      if(TriesToFindTree > 10)then
      begin
        Writeln('Took too long to find tree! logging out');
        Logout;
      end;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  ==============================
     //                              \\
    ||          Log Dropping          ||
     \\                              //
       ==============================   }


    procedure DroppingLogs;

    var
    bx, by: Integer;

    begin
      if (InvFull) then
      GameTab(4);
      repeat
        if (FindDTM(Log, bx, by, MIX1, MIY1, MIX2, MIY2)) then
        begin
          Mouse(bx, by, 4, 4, false)
          ChooseOption(bx, by, 'Drop')
          Wait(450+Random(120))
          LogsCut := LogsCut + 1;
        end;
      until (not (FindDTM(Log, bx, by, MIX1, MIY1, MIX2, MIY2)))
     Loads := Loads + 1;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  ==============================
     //                              \\
    ||        Progress Report         ||
     \\                              //
       ==============================   }


    procedure ProgressReport;
    begin
    ClearDebug;
       Writeln('<<_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_>>')
       Writeln('<<      Scarf4ce Place/Tree Power Cutter         ')
       Writeln('<<          Worked For: ' + TimeRunning)
       Writeln('<<          Chopped: ' + IntToStr(LogsCut) + ' Logs ')
       Writeln('<<      Thanks for using my script           ')
       Writeln('<<_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_>>')
       SRLRandomsReport;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  ==============================
     //                              \\
    ||           Main Setup           ||
     \\                              //
       ==============================   }


    procedure Setup;
    begin
      SetupSRL;
      DeclarePlayers;
      LoadDTMs;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    begin
      Wait(2000)
      Setup;
      SafeInitForm;
      SafeShowFormModal;
      FormSetup;
      ActivateClient;
      begin
        if (not (LoggedIn)) then Loginplayer;
        HighestAngle;
        MakeCompass('N')
        repeat
          Wait(2000 + Random(1000))
          DisguiseScar('[' + IntToStr(Loads) + '/' +IntToStr(AmountofLoads) + '] ' +(Players[CurrentPlayer].name) + '')
          ChopTree;
          DroppingLogs;
          ProgressReport;
          if (Loads = AmountofLoads) then
          begin
            HighestAngle;
            MakeCompass('N');
            LogOut;
            NextPlayer(True);
            Loads := 0
          end;
        until (false)
      end;
    end.

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    That adds another procedure called change color before the init form where you will have to set to the right colors to get them to display right but it works


  3. #3
    Join Date
    May 2007
    Posts
    54
    Mentioned
    0 Post(s)
    Quoted
    0 Post(s)

    Default

    Quote Originally Posted by bobarkinator View Post
    Ok change your code to this
    SCAR Code:
    {
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    //                                           \\
    ||     Scarf4ce's Power Willow Chopper       ||
    ||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||
    ||1) Declare your players.                   ||
    ||2) Drag the cross hairs onto the RS screen ||
    ||3) Start Logged in                         ||
    ||4) Fill out the form                       ||
    ||5) Keep your axe in the first inv slot     ||
    ||6) Hit the play button and watch your lvl  ||
    ||   climb :P.                               ||
    ||7) Post your progress report =].           ||
    ||                                           ||
    ||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||
    ||               Thanks to                   ||
    ||~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||
    || - Yohojo for letting me use his Ent       ||
    ||   finding procedure                       ||
    || - JAD for helping me with failsafes       ||
    ||   and for his tutorials that helped me    ||
    ||   with my anti-ban and anti randoms       ||
    || - SRL community with helping me fix       ||
    ||   errors                                  ||
    || - Mad Cow and Starblaster100 for their    ||
     \\  awesome form making tutorials          //
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    }


    program Scarf4cePWC;

    {.include SRL\SRL.SCAR}
    {.include SRL\SRL\Skill\Woodcutting.SCAR}
    {.include SRL/SRL/extended/xAntiBan.scar}

    var
      Loads, LogsCut: Integer;
      Log, BrokenAxe, AxeHandle, RegularAxe: Integer;

    procedure DeclarePlayers;
    begin
      Status('Loading Players')

      HowManyPlayers := 6;  // How many players are you using?
      NumberOfPlayers(HowManyPlayers);
      CurrentPlayer := 0;

      Players[0].Name := ''; // Runescape username
      Players[0].Pass := ''; // Runescape password
      Players[0].Nick := ''; // 2-4 letters of your Runescape username (No capitals or spaces)
      Players[0].Active := True; //Are you using this player?

      Players[1].Name := '';
      Players[1].Pass := '';
      Players[1].Nick := '';
      Players[1].Active := False;

      Players[2].Name := '';
      Players[2].Pass := '';
      Players[2].Nick := '';
      Players[2].Active := False;

      Players[3].Name := '';
      Players[3].Pass := '';
      Players[3].Nick := '';
      Players[3].Active := False;

      Players[4].Name := '';
      Players[4].Pass := '';
      Players[4].Nick := '';
      Players[4].Active := False;

      Players[5].Name := '';
      Players[5].Pass := '';
      Players[5].Nick := '';
      Players[5].Active := False;

      NickNameBMP := CreateBitmapMaskFromText(Players[CurrentPlayer].Nick, UpChars);
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {
      ==============================
    //                               \\
    ||             DTM'S              ||
    \\                               //
      ===============================
    }


    procedure LoadDTMs;
    begin

    Log := DTMFromString('78DA632C666260E0646440067921460CFF813' +
           '448F43F103066314179C880118904D2354035FF19F0AB2905AA11' +
           '22604E23500D0F0135C94035DCF8D50000507909F5');

    BrokenAxe := DTMFromString('78DA633CCAC4C090C1C8800C9A127919FE036' +
       '990E87F2060BC0C54938CAA06220B2381F445A09A04026A8E01D5' +
       'C41050B31FA8A698809AB384CD0100CBBD0D20');

    AxeHandle := DTMFromString('78DA637CCFC4C0E0C6C8800CCA227819FE036' +
       '990E87F2060FC06546389AA06220B2381F473A09A00026ADE00D5' +
       'F81350F316A8C685809A97403541F8D50000D0090D3C');

    RegularAxe := DTMFromString('78DA637461626060676440060DF1BC0CFF813' +
       '448F43F10300601D5FC6740038C482490F604AAF94D408D13500D' +
       '2B237E35F640358204D4F813618E1F50CD1F02EE0906AA61C26F0' +
       'E0099720B7E');

    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  =============================
     //                             \\
    ||             Form              ||
     \\                             //
       =============================   }


    var
      frmDesign : TForm;
      Label1 : TLabel;
      Label2 : TLabel;
      Label3 : TLabel;
      Label4 : TLabel;
      Edit2 : TEdit;
      Edit4 : TEdit;
      ComboBox1 : TComboBox;
      Button1 : TButton;
      ComboBox2 : TComboBox;
      Treename : String;
      Treecolor: Integer;
      AmountofLoads : Integer;
      RunDirec : String;

    procedure SafeInitForm;
    var
      v: TVariantArray;
    begin
      setarraylength(V, 0);
      ThreadSafeCall('InitForm', v);
    end;

    procedure ShowFormModal;
    begin
      frmDesign.ShowModal;
    end;

    procedure SafeShowFormModal;
    var
      v: TVariantArray;
    begin
      setarraylength(V, 0);
      ThreadSafeCall('ShowFormModal', v);
    end;

    procedure ButtonClick(sender: TObject);
    begin
      frmDesign.Caption:= frmDesign.Caption + '.';
      frmDesign.ModalResult:= mrOk;
    end;

    procedure ChangeColor(Sender: TObject);//Change these colors to the ones you want
    begin
      LoadSetting('Scarf4ce Power Chopper v1.3', 'Tree Color');
      case ComboBox1.Text of
        'Tree': Edit2.Text:=IntToStr(133);
        'Willow': Edit2.Text:=IntToStr(6565);
        'Oak': Edit2.Text:=IntToStr(32983);
        'Yew': Edit2.Text:=IntToStr(59084);
      end;
    end;


    procedure InitForm;
    begin
    frmDesign := CreateForm;
    frmDesign.Left := 250;
    frmDesign.Top := 114;
    frmDesign.Width := 339;
    frmDesign.Height := 267;
    frmDesign.Caption := 'Scarf4ce Power Chopper v1.3';
    frmDesign.Color := clInactiveCaption;
    frmDesign.Font.Color := clWindowText;
    frmDesign.Font.Height := -11;
    frmDesign.Font.Name := 'MS Sans Serif';
    frmDesign.Font.Style := [];
    frmDesign.Visible := False;
    frmDesign.PixelsPerInch := 96;
    Label1 := TLabel.Create(frmDesign);
    Label1.Parent := frmDesign;
    Label1.Left := 17;
    Label1.Top := 29;
    Label1.Width := 90;
    Label1.Height := 17;
    Label1.Caption := 'Tree Name';
    Label1.Font.Color := clWindowText;
    Label1.Font.Height := -16;
    Label1.Font.Name := 'Copperplate Gothic Light';
    Label1.Font.Style := [];
    Label1.ParentFont := False;
    Label2 := TLabel.Create(frmDesign);
    Label2.Parent := frmDesign;
    Label2.Left := 17;
    Label2.Top := 67;
    Label2.Width := 102;
    Label2.Height := 17;
    Label2.Caption := 'Tree Color';
    Label2.Font.Color := clWindowText;
    Label2.Font.Height := -16;
    Label2.Font.Name := 'Copperplate Gothic Light';
    Label2.Font.Style := [];
    Label2.ParentFont := False;
    Label3 := TLabel.Create(frmDesign);
    Label3.Parent := frmDesign;
    Label3.Left := 17;
    Label3.Top := 138;
    Label3.Width := 54;
    Label3.Height := 17;
    Label3.Caption := 'Loads';
    Label3.Font.Color := clWindowText;
    Label3.Font.Height := -16;
    Label3.Font.Name := 'Copperplate Gothic Light';
    Label3.Font.Style := [];
    Label3.ParentFont := False;
    Label4 := TLabel.Create(frmDesign);
    Label4.Parent := frmDesign;
    Label4.Left := 17;
    Label4.Top := 102;
    Label4.Width := 121;
    Label4.Height := 17;
    Label4.Caption := 'Run Direction';
    Label4.Font.Color := clWindowText;
    Label4.Font.Height := -16;
    Label4.Font.Name := 'Copperplate Gothic Light';
    Label4.Font.Style := [];
    Label4.ParentFont := False;
    Edit2 := TEdit.Create(frmDesign);
    Edit2.Parent := frmDesign;
    Edit2.Left := 157;
    Edit2.Top := 65;
    Edit2.Width := 121;
    Edit2.Height := 21;
    Edit2.Hint := 'Use the color picker to choose the color for your tree';
    Edit2.ParentShowHint := False;
    Edit2.ShowHint := True;
    Edit2.TabOrder := 8;
    Edit2.Text := LoadSetting('Scarf4ce Power Chopper v1.3', 'Tree Color');;
    Edit4 := TEdit.Create(frmDesign);
    Edit4.Parent := frmDesign;
    Edit4.Left := 156;
    Edit4.Top := 136;
    Edit4.Width := 25;
    Edit4.Height := 21;
    Edit4.Hint := 'How many loads do you want to do per player';
    Edit4.ParentShowHint := False;
    Edit4.ShowHint := True;
    Edit4.TabOrder := 9;
    Edit4.Text := LoadSetting('Scarf4ce Power Chopper v1.3', 'Loads');
    ComboBox1 := TComboBox.Create(frmDesign);
    ComboBox1.Parent := frmDesign;
    ComboBox1.Left := 156;
    ComboBox1.Top := 27;
    ComboBox1.Width := 145;
    ComboBox1.Height := 21;
    ComboBox1.Hint := 'Select the type of tree you are cutting';
    ComboBox1.ItemHeight := 13;
    ComboBox1.ParentShowHint := False;
    ComboBox1.ShowHint := True;
    ComboBox1.TabOrder := 10;
    ComboBox1.Text := LoadSetting('Scarf4ce Power Chopper v1.3', 'Tree Name');
    ComboBox1.Items.Add('Tree');
    ComboBox1.Items.Add('Oak');
    ComboBox1.Items.Add('Willow');
    ComboBox1.Items.Add('Yew');
    ComboBox1.Onclick:=@ChangeColor;
    Button1 := TButton.Create(frmDesign);
    Button1.Parent := frmDesign;
    Button1.OnClick := @ButtonClick;
    Button1.Left := 126;
    Button1.Top := 182;
    Button1.Width := 75;
    Button1.Height := 25;
    Button1.Hint := 'Click to start the script';
    Button1.Caption := 'Start';
    Button1.ParentShowHint := False;
    Button1.ShowHint := True;
    Button1.TabOrder := 11;
    ComboBox2 := TComboBox.Create(frmDesign);
    ComboBox2.Parent := frmDesign;
    ComboBox2.Left := 156;
    ComboBox2.Top := 100;
    ComboBox2.Width := 40;
    ComboBox2.Height := 21;
    ComboBox2.Hint := 'Run away direction from fights, ents, etc';
    ComboBox2.ItemHeight := 13;
    ComboBox2.ParentShowHint := False;
    ComboBox2.ShowHint := True;
    ComboBox2.TabOrder := 12;
    ComboBox2.Text := LoadSetting('Scarf4ce Power Chopper v1.3', 'Run Direction');
    ComboBox2.Items.Add('N');
    ComboBox2.Items.Add('E');
    ComboBox2.Items.Add('S');
    ComboBox2.Items.Add('W');
    end;

    procedure FormSetup;
    begin
      Treename      := ComboBox1.Text
      Treecolor     := StrToInt(Edit2.Text)
      AmountofLoads := StrToInt(Edit4.Text)
      RunDirec      := ComboBox2.Text
      SaveSetting('Scarf4ce Power Chopper v1.3', 'Tree Name', ComboBox1.Text);
      SaveSetting('Scarf4ce Power Chopper v1.3', 'Tree Color', Edit2.Text);
      SaveSetting('Scarf4ce Power Chopper v1.3', 'Run Direction', ComboBox2.Text);
      SaveSetting('Scarf4ce Power Chopper v1.3', 'Loads', Edit4.Text);
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  =============================
     //                             \\
    ||           Anti Ban            ||
     \\                             //
       =============================   }


    procedure MyAntiBan;
    var
    Dban : Integer;

    begin
      LeaveScreenEvery(1+Random(4));
      RotateEvery(10 + Random(10));
      RandomRClickEvery(2+Random(5))
      if (not (LoggedIn)) then
      Exit;
      Dban := 0 + Random(120)
      case Dban of

       0: AntiBan;

       1: HoverSkill('Woodcutting', false);

       2: HoverSkill('Attack', false);

       3: begin
            GameTab(5)
            Wait(889 + random(852));
            GameTab(4)
          end;

       4: PickUpMouse;

       //5: RandomChatEvery(5 + Random(4));

       6: begin
            case random(5) of
             0: begin
                  TypeSend('Woodcutting lvls ppl?')
                  Wait(2458 + random(1438));
                  TypeSend('48');
                end;

             1: TypeSend('Great.. only 200k more exp to go... -.-');

             2: TypeSend('Omg Woodcutting is so lame and boring..');

             3: TypeSend('Boredd..');

             4: TypeSend('Well only 20 more levels to go.. >=[]');

             5: begin
                  TypeSend('Cant wait till im lvl 70 wc');
                  Wait(2438 + random(1589));
                  TypeSend('Cutting yews is so much faster =]');
                end;

             6: TypeSend('These guys are autoers.. Or are they? X[)');

             7: begin
                  TypeSend('Well you ppl are lame..');
                  Wait(1135 + random(895));
                  TypeSend('Jk =P');
                end;

             8: TypeSend('Hmm.. am i bored, or am i bored? =[]');

             9: begin
                  TypeSend('Anyone see family guy last night?')
                  Wait(1184 + random(854));
                  TypeSend('Well i didnt X[) lol');
                end;
            end;
          end;

       7: HoverSkill('Mining', false);

       8: begin
            GameTab(1);
            Wait(300 + random(232))
            GameTab(2);
            Wait(324 + random(182))
            GameTab(3);
            Wait(287 + random(134))
            GameTab(4);
            Wait(270 + random(54))
            GameTab(5);
            Wait(234 + random(130))
            GameTab(6);
            Wait(324 + random(23))
            GameTab(4);
          end;

       9: MMouse(Random(MSX2), Random(MSY2), 0, 0);

       10: HoverSkill('random', false);
      end;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  ==================================
     //                                   \\
    ||                Ent                  ||
    ||                                     ||
    || Thanks to Yohojo for this Procedure ||
     \\                                   //
       ==================================     }


    procedure EntFinder;
    var
    EX, EY: integer;
    FX, FY: integer;
    SafeEntWait: LongInt;

    begin
      Status('Checking For Ent')
      if (FindObjMultiText(EX, EY, Treename, Treename, Treename, Treecolor, 2)) then
      begin
        MMouse(EX, EY, 0, 0)
        if FindColorTolerance(FX, FY, 55769, 85, 15, 115, 15, 20) then
        begin
          Status('Ent Found');
          MouseFindFlag(645, 83, 2, 2);
          MarkTime(SafeEntWait)
          repeat
            FTWait(5)
            FindNormalRandoms;
            if not (LoggedIn) then
            NextPlayer(False);
          until TimeFromMark(SafeEntWait) > 29000 + Random(10000)
          EntsAvoided := EntsAvoided + 1
        end;
      end;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {
       ==============================
     //                              \\
    ||          Anti-Randoms          ||
     \\                              //
       ==============================
    }


    function FindFastRandoms: Boolean; //Function by WT-Fakawi
    var
    i: Integer;
    begin
    for i := 1 to 9 do
    begin
       case I of
         1: if FindDead then
             Result := True;
         2: if FindMod then
             Result := True;
         3: if FindMime then
             Result := True;
         4: if FindMaze then
             Result := True;
         5: if FindQuiz then
             Result := True;
         6: if FindDemon then
             Result := True;
         7: begin
              if NoGameTab then
              begin
                Result := True;
                Players[CurrentPlayer].loc := 'No GameTab';
                Logout;
                Exit;
              end;
            end;
         8: begin
              if InBlack then
              begin
                Result := True;
                Players[CurrentPlayer].loc := 'InBlack';
                Logout;
                Exit;
              end;
            end;
         9: RC;
       end;
       wait(1);
    end;
    end;

    procedure FindRandoms;
    begin
      FindFastRandoms;
      FindNormalRandoms;
      Wait(20)
      FindTalk;
      Wait(20)
      EntFinder;
      if (FindFight) then
       begin
         RunAwayDirection(RunDirec);
         Wait(8000 + Random(2000));
         RunBack;
       end;
       Wait(20)
       FindTalk;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  =============================
     //                             \\
    ||          Axe Stuff            ||
     \\                             //
       =============================   }


    procedure AxeHeadColors;
    begin
      Wait(300)
      HighestAngle;
      MakeCompass('N');
      GameTab(4)
      FindAxeHeadColor;
    end;

    procedure IsAxeBroken;
    var
    FX, FY, TX, TY: Integer;

    begin
      GameTab(4)
      Wait(450 + random(130))
      if (FindDTM(RegularAxe, FX, FY, MIX1, MIY1, MIX2, MIY2)) and
         (not(FindDTM(BrokenAxe, TX, TY, MIX1, MIY1, MIX2, MIY2))) then
      begin
        Exit;
      end;
      begin
        if (FindDTM(BrokenAxe, TX, TY, MIX1, MIY1, MIX2, MIY2)) and
           (not(FindDTM(RegularAxe, FX, FY, MIX1, MIY1, MIX2, MIY2))) then
        begin
          Writeln('Axe Broken, Switiching Players.')
          NextPlayer(False)
        end;
      end;
    end;

    procedure FindAxeHead;
    begin
      Status('Attempting to find the Axe Head')
      Findhead;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  =============================
     //                             \\
    ||         Tree Chopping         ||
     \\                             //
       =============================   }


    function FindObjMultiText2(var cx, cy: Integer; Ut1, UT2, UT3: string; color,
    tolerance: Integer): Boolean;
    var
    x, y, a, c, i, x1, y1, x2, y2: Integer;
    begin
       Color := Color;
    if (FindColorTolerance(x, y, color, msx1, msy1, msx2, msy2, tolerance)) then
    begin
       x1 := 245;
       y1 := 165;
       x2 := 277;
       y2 := 185;
       repeat
         if (not (Loggedin)) then
           Break;
         a := a + 1;
         if (a = 1) or (a = 3) then
           c := c + 1;
         for i := 1 to c do
         begin
           if (a = 1) then
           begin
             x1 := x1 + 30;
             x2 := x2 + 30;
           end
           else if (a = 2) then
           begin
             y1 := y1 - 20;
             y2 := y2 - 20;
           end
           else if (a = 3) then
           begin
             x1 := x1 - 30;
             x2 := x2 - 30;
           end
           else if (a = 4) then
           begin
             y1 := y1 + 20;
             y2 := y2 + 20;
           end;
           if (x1 = 485) and (x2 = 517) then
             x2 := x2 - 2;
           if (y1 = 325) and (y2 = 345) then
             y2 := y2 - 7;
           if (x2 > 515) then
             Break;
           if (FindColorTolerance(x, y, Color, x1, y1, x2, y2, tolerance)) then
           begin
             MMouse(x, y, 0, 0)
               cx := x;
             cy := y;
             if (IsUpTextMulti(UT1, UT2, UT3)) then
             begin
               Result := True;
               Break;
             end;
           end;
         end;
         if (a = 4) then
           a := 0;
       until (x2 > 515) or (Result = True);
    end;
    end;

    procedure ChopTree;
    var
    TimeMarker: Integer;
    TriesToFindTree: Integer;
    TreeFound: Boolean;
    Result1 : Boolean;

    begin
      If InvFull then
      Exit;
      If not LoggedIn then
      Exit;
      AxeHeadColors;
      Repeat
        Result1 := False;
        Wait(53+Random(47));
        IsAxeBroken;
        Wait(89+Random(24));
        EntFinder;
        Wait(48+Random(23));
        if FindObjMultiText2(x, y, Treename, Treename, Treename, TreeColor, 12) then
        begin
          Wait(20 + Random(29))
          Mouse(x, y, 2, 2, True);
          Wait(21+Random(23))
          FindRandoms;
          Wait(224+Random(284))
          FindAxeHead;
          Wait(540+Random(22))
          MyAntiBan;
          Wait(22+Random(27))
          TreeFound := True;
        end Else
        begin
          Writeln('Could not find tree color')
          Logout;
          Nextplayer(true)
        end;
        Wait(123+random(109));
        if treefound then
        begin
          TriesToFindTree := 0;
          MarkTime (TimeMarker);
          Repeat
            Wait(232+random(100))
            FindRandoms;
            EntFinder;
          Until (InvFull) or (TimeFromMark (TimeMarker) > 5000)  // Add here time to wait till clicking tree again
        end Else
        begin
          Wait(100+random(100)); //waits for tree to come back
          TriesToFindTree := TriesToFindTree + 1;
        end;
      until (InvFull) or (TriesToFindTree > 10);
      if(TriesToFindTree > 10)then
      begin
        Writeln('Took too long to find tree! logging out');
        Logout;
      end;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  ==============================
     //                              \\
    ||          Log Dropping          ||
     \\                              //
       ==============================   }


    procedure DroppingLogs;

    var
    bx, by: Integer;

    begin
      if (InvFull) then
      GameTab(4);
      repeat
        if (FindDTM(Log, bx, by, MIX1, MIY1, MIX2, MIY2)) then
        begin
          Mouse(bx, by, 4, 4, false)
          ChooseOption(bx, by, 'Drop')
          Wait(450+Random(120))
          LogsCut := LogsCut + 1;
        end;
      until (not (FindDTM(Log, bx, by, MIX1, MIY1, MIX2, MIY2)))
     Loads := Loads + 1;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  ==============================
     //                              \\
    ||        Progress Report         ||
     \\                              //
       ==============================   }


    procedure ProgressReport;
    begin
    ClearDebug;
       Writeln('<<_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_>>')
       Writeln('<<      Scarf4ce Place/Tree Power Cutter         ')
       Writeln('<<          Worked For: ' + TimeRunning)
       Writeln('<<          Chopped: ' + IntToStr(LogsCut) + ' Logs ')
       Writeln('<<      Thanks for using my script           ')
       Writeln('<<_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_+_>>')
       SRLRandomsReport;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    {  ==============================
     //                              \\
    ||           Main Setup           ||
     \\                              //
       ==============================   }


    procedure Setup;
    begin
      SetupSRL;
      DeclarePlayers;
      LoadDTMs;
    end;

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    begin
      Wait(2000)
      Setup;
      SafeInitForm;
      SafeShowFormModal;
      FormSetup;
      ActivateClient;
      begin
        if (not (LoggedIn)) then Loginplayer;
        HighestAngle;
        MakeCompass('N')
        repeat
          Wait(2000 + Random(1000))
          DisguiseScar('[' + IntToStr(Loads) + '/' +IntToStr(AmountofLoads) + '] ' +(Players[CurrentPlayer].name) + '')
          ChopTree;
          DroppingLogs;
          ProgressReport;
          if (Loads = AmountofLoads) then
          begin
            HighestAngle;
            MakeCompass('N');
            LogOut;
            NextPlayer(True);
            Loads := 0
          end;
        until (false)
      end;
    end.

    //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    That adds another procedure called change color before the init form where you will have to set to the right colors to get them to display right but it works
    Ah I see how you did that. Thanks for your help bob .

  4. #4
    Join Date
    Jan 2007
    Location
    Kansas
    Posts
    3,760
    Mentioned
    1 Post(s)
    Quoted
    3 Post(s)

    Default

    No problem


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
  •