• Log in or sign up for an account here: https://www.sythe.org/login

need draynor willow cutter

udie2day2

Newcomer
Joined
Apr 27, 2009
Sythe Gold
0
Messages
11
Can someone please make a a S.M.A.R.T. version of a draynor willow cutter. PM me or email me @

[email protected]
or
[email protected]




T....A....K YOU
...H...N...



if someone could also update the following code to drop logs that will also be apreciated.:D
Code:
program WillowKiller;
{.include SRL/SRL/Misc/SMART.Scar}
{.include SRL/SRL.Scar}
{.include srl/srl/skill/woodcutting.scar}
{.Include SRL\SRL\Reflection\Reflection.Scar}


var
 x, y, i, Logs, Loads, nap, wclvl, BrokenAxe, BrokenAxes, cblvl, Responds, logsdropped, OriginalWcLvl, CurrentWcLvl, LevelUps, ExpGained :Integer;
 ExpGain :Extended;

const
 World = 35;
 SRLStatsID = '5774';
 SRLStatsPass = 'leechme';
 HowLongToSleep = 15;
 Smart = True;
 Signed= True;
 Responder =  True;
 Skill = 'Woodcutting';



procedure DeclarePlayers;
begin

  HowManyPlayers := 1; //Change this to number players you got
  NumberOfPlayers(HowManyPlayers);
  CurrentPlayer := 0;

  Players[0].Name := ''; // Enter your Username here
  Players[0].Pass := ''; // Enter your password here
  Players[0].Nick := ''; // Enter 3 - 4 letters from your username here
  Players[0].Active := True;
  {
  Players[1].Name := '';
  Players[1].Pass := '';
  Players[1].Nick := '';
  Players[1].Active := True;

  Players[2].Name := '';
  Players[2].Pass := '';
  Players[2].Nick := '';
  Players[2].Active := True;
  }
end;



//-------------------------------DO NOT TOUCH ANYTHING BELOW THIS!----------------------------\\



procedure AntiBannage;
begin
  case Random(30) of
  0 : MMouse(0, 0, 700, 500);
  1 : begin
        Hoverskill('Woodcutting', false);
        wait(3500 + Random(1000));
        Hoverskill('Mining', false);
      end;
  2 : BoredHuman;
  3 : RandomMovement;
  4 : PickupMouse;
  5 : begin
        GameTab(random(10));
        wait(3500 + Random(1000));
        GameTab(4);
      end;
  end;
end;

procedure BrokenAxeDTM;
begin
   BrokenAxe := DTMFromString('78DA636C616260E0636440061D697C601A26C' +
                  'AD80354C38FAA06260B57D30754C34D404D2F508D080135CD4035' +
                  '5C04D4D400D5A8E05703008C0604B4');

end;

        //Very Important Do Not Touch-Script Wont Cut Trees\\

function FindObjTPAKing(var x, y: integer; colors : array of integer; tol, cts, ObjWidth, ObjHeight, minCount :Integer; UpText: tstringarray): Boolean;
var
   I, j, tcts: Integer;
   myPoint: TPoint;
   Points, TempPoints: TPointArray;
   aPoints: T2DPointArray;
   s: string;
begin
  tcts := GetColorToleranceSpeed;
  SetLength(Points, 0);
  if CTS * 9 mod 3 <> 0 then
    CTS := 1;
  ColorToleranceSpeed(cts);
  For I := 0 to High(colors) do   //Loop through the colors array
    begin
      FindColorsSpiralTolerance(x, y, TempPoints, Colors[i], MSX1, MSY1, MSX2, MSY2, Tol);//Check for the current color
      Points := CombineTPA(Points, TempPoints); //Add the different results together
    end;
  aPoints := TPAtoATPAEx(Points, ObjWidth, ObjHeight);
  SetLength(Points, 0);
  for I := 0 to Length(aPoints) - 1 do
  begin
    if Length(aPoints[i]) < minCount then
      Continue;
    myPoint := MiddleTPA(aPoints[i]);
    MMouse(myPoint.X, myPoint.Y, 0, 0);
    Wait(100 + Random(50));
    ColorToleranceSpeed(1);
    s := rs_getuptext;
    for j := 0 to high(uptext) do
      if pos(uptext[j], s) <> 0 then
      begin
        x := myPoint.X;
        y := myPoint.Y;
        Result := True;
        ColorToleranceSpeed(tcts);
        Exit;
      end;
    ColorToleranceSpeed(cts);
  end;
  ColorToleranceSpeed(tcts);
end;

//DeathWalk- Using Reflection\\

function LoadPath: TPointArray;
begin
  SetLength(Result, 15);

  Result[0] := Point(3222, 3219);
  Result[1] := Point(3236, 3225);
  Result[2] := Point(3228, 3231);
  Result[3] := Point(3224, 3238);
  Result[4] := Point(3221, 3246);
  Result[5] := Point(3213, 3247);
  Result[6] := Point(3207, 3247);
  Result[7] := Point(3200, 3247);
  Result[8] := Point(3195, 3251);
  Result[9] := Point(3191, 3255);
  Result[10] := Point(3188, 3258);
  Result[11] := Point(3181, 3264);
  Result[12] := Point(3172, 3264);
  Result[13] := Point(3164, 3267);
  Result[14] := Point(3163, 3270);
end;

procedure DeathWalk;
var
  I: Integer;
  Path: TPointArray;
begin
  if(FindBlackChatMessage('Oh Dear,You are dead!')) then
  begin
    Path := LoadPath;
    for i := 0 to High(Path) do
    begin
      WalkToTile(Path[i], 3, 0);
      Wait(7000+Random(3000));
    end;
  end;
end;

{*******************************************************************************
procedure NextPlayer2(Active: Boolean);
By: Dankness and modified by Ron and by Raymond and Tootoot222
Description: Logs in the next player.
Boolean: True - Current player is ok. False - Current player is false.
Doesn't go into an infinate loop when all players are false
*******************************************************************************}

procedure NextPlayer2(Active: Boolean);
begin
  if RandomPlayer then
    RandomNextPlayer(Active)
  else
  begin
    WriteLn('NextPlayer2(Active: ' + BoolToStr(Active)+ ');');
    Players[CurrentPlayer].Active := Active;
    Logout;
    PlayerCurTime := (GetSystemTime div 1000);
    Players[CurrentPlayer].Worked := Players[CurrentPlayer].Worked +
      ((PlayerCurTime - PlayerStartTime) / 60);
    if(AllPlayersInactive) then
      Exit;
    CurrentPlayer := (CurrentPlayer + 1) mod Length(Players);
    while Players[CurrentPlayer].Active = False do
      CurrentPlayer := (CurrentPlayer + 1) mod Length(Players);
    SRL_Logs := SRL_Logs + 1;
    LoginPlayer;
  end;
end;


               //Anti-Random\\

procedure AntiRandoms;
begin
  FindNormalRandoms;
  If(FindFight) Then
  begin
     SetRun(True);
     RunAway('N', True, 1, 15000 + random(5000));
  end;
  if (FindEnt(x, y, True)) then
  begin
     Mouse(MMCX + 3, MMCY - 4, 3, 3, true);
     wait(1000);
     repeat
     wait(100+random(100));
     FindNormalRandoms;
     until not (FindEnt(x, y, True))
  end;
  LampSkill := skill;
end;

//Auto-Responder (Pixelate)\\

procedure Responses;
var
  text: string;
begin
  if not LoggedIn then Exit;
  if(Responder)then
  begin
    if(not GetLastChatText(text))then
    begin
       //Writeln('Error while getting chat text. No-one is talking?');
    end else
    begin
        //Writeln('Chat text: ' + text);
      if(InChat('bot') and InChat(Players[CurrentPlayer].Nick))then
      begin
        case Random(4) of
          0: TypeSend('Me?');
          1: TypeSend('I''m not a bot!');
          2: TypeSend('Your a newb');
          3: TypeSend('Huh?');
        end;
        Responds := Responds +1;
      end;
      if(text = 'wc lvls?') or (text = 'woodcut lvls?') or (text = 'wc?') or (text = 'woocutting levels?')then
      begin
        SayCurrentLevels('Woodcutting');
      end;
    end;
  end;
  if(Responder)then
  begin
    case Random(40) of
      0: TypeSend('Runescape rox');
      1: TypeSend('Im watching tv and playing rs at the same time');
      2: Typesend('woodcut lvls?');
      3: Typesend('I got my wc lvl to' + IntToStr(CurrentWcLvl) + '.');
      4: Typesend('Hi!');
      5: Typesend('attck,str,def lvls?');
      6: Typesend('Old runescape was better than this.....');
      7: Typesend('Wcing is boring')
    end;
  end;
end;

                         //BrokenAxe Finder\\
Procedure IsAxeBroken;
begin
  if FindDTM(BrokenAxe, x, y, MIX1, MIY1, MIX2, MIY2) then
  begin
    BrokenAxes := BrokenAxes +1;
    Writeln('The axe was broken.The script will change players!');
    LogOut;
    NextPlayer2(False);
    Exit;
    FreeDTM(BrokenAxe);
  end;
end;


                ///Tree Finder\\

procedure WillowCutter;   //Credit goes to ToF for his tree finding (chnaged the colours and wait times for less ban %)
var Failed: integer;
    TreeColors: array [0..3] of integer;
begin
  if(not(LoggedIn)) or (InvFull) then
    Exit;

              TreeColors[0] := 2504497;
              TreeColors[1] := 7309951;
              TreeColors[2] := 2702134;
              TreeColors[3] := 2242606;
              for i := 0 to 4 do
              AntiRandoms;
              AntiBannage;
              if FindObjTPAKing(x, y, TreeColors, 20, 2, 15, 25, 10, ['Willow', 'Will', 'illo', 'llow']) then
                begin
                repeat
                  if(InvFull) then
                    Exit;
                  FindEnt(x, y, True);
                  Responses;
                  FindObjTPAKing(x, y, TreeColors, 20, 2, 15, 25, 10, ['Willow', 'Will', 'illo', 'llow'])
                  Wait(100 + Random(300));
                  MMouse(x, y, 2, 2);
                  begin
                    Wait(100 + Random(200));
                    Wait(100 + Random(200));
                  case Random(10) of
                  0: begin
                       Mouse(x, y, 4, 4, False);
                       Wait(400 + Random(200));
                       ChooseOption('hop');
                       WriteLn('R Chopping Tree');;
                     end;
                  1: begin
                       Mouse(x, y, 4, 4, True);
                       WriteLn('L Chopping Tree');
                     end;
                  end;
                  Wait(900 + Random(100));
                  FindObjTPAKing(x, y, TreeColors, 30, 2, 15, 25, 10, ['Willow', 'Will', 'illo', 'llow'])
                  MMouse(x, y, 2, 2);
                  FindObjTPAKing(x, y, TreeColors, 30, 2, 15, 25, 10, ['Willow', 'Will', 'illo', 'llow'])
                  Wait(800 + Random(100));
              end;
              until Invfull or not FindObjTPAKing(x, y, TreeColors, 30, 2, 15, 25, 10, ['Willow', 'Will', 'illo', 'llow']);
              while (not FindObjTPAKing(x, y, TreeColors, 30, 2, 15, 25, 10, ['Willow', 'Will', 'illo', 'llow'])) do
              repeat
                if(InvFull) then
                    Exit;
                if (not FindObjTPAKing(x, y, TreeColors, 30, 2, 15, 25, 10, ['Willow', 'Will', 'illo', 'llow'])) then
                  MakeCompass('N');
                  Wait(100 + Random(300));
                  if (not FindObjTPAKing(x, y, TreeColors, 30, 2, 15, 25, 10, ['Willow', 'Will', 'illo', 'llow'])) then
                    MakeCompass('E');
                    Wait(100 + Random(300));
                    if (not FindObjTPAKing(x, y, TreeColors, 30, 2, 15, 25, 10, ['Willow', 'Will', 'illo', 'llow'])) then
                      MakeCompass('W');
                      Wait(100 + Random(300));
                      if (not FindObjTPAKing(x, y, TreeColors, 30, 2, 15, 25, 10, ['Willow', 'Will', 'illo', 'llow'])) then
                        Inc(Failed);
              until FindObjTPAKing(x, y, TreeColors, 30, 2, 15, 25, 10, ['Willow', 'Will', 'illo', 'llow']) or (Failed = 5);
              if (Failed = 5) then
              begin
                WriteLn('Tree Finding Failed :(');
              end;
            end;
         end;
                  //DTMS\\


procedure LoadTheDTM; //Custom made with the help of tootoot222
begin
   AntiRandoms;
   AntiBannage;
   Logs := DTMFromString('78DA63E4636460D8C68001FE0331238806024' +
       '61E206B2DBA0A462412484B00595B09A8E105B2F61350C30464ED' +
       '23A006C4DA825F0D00CBD5099D');

   BrokenAxe := DTMFromString('78DA636C616260E0636440061D697C601A26C' +
                  'AD80354C38FAA06260B57D30754C34D404D2F508D080135CD4035' +
                  '5C04D4D400D5A8E05703008C0604B4');

end;

                   //Log Dropper\\

procedure WillowDropper;
begin
  if(not(LoggedIn)) or (InvEmpty) then
    Exit;
  if(InvFull) then
  begin
  LoadTheDtm;
  repeat
    if(InvEmpty) then
      Exit;
    if(FindDtm(Logs, X, Y, MIX1, MIY1, MIX2, MIY2)) then
    begin
      MMouse(X, Y, 2, 2);
      wait(300 + random(300));
      Mouse(X, Y, 2, 2, False);
      ChooseOption('rop');
      LogsDropped := LogsDropped + 1
      wait(200 + random(300));
      AntiRandoms;
      AntiBannage;
    end;
  until(not(FindDtm(Logs, X, Y, MIX1, MIY1, MIX2, MIY2)) or (not(LoggedIn)))
  FreeDTM(logs);
 end;
end;

procedure sleepp;
begin
  if(not(LoggedIn)) then
    Exit;
  if(TimeFromMark(nap) > HowLongToSleep * 60000) then
  begin
    logout;
    sleep(15 * 60000 + random(15 * 60000));
    loginplayer;
    Marktime(nap);
  end;
end;

procedure GetCBLevel;
begin
  GameTab(1);
  cblvl := GetCombatLevel;
  if(cblvl<19) then
  begin
    writeln('Your combat level is less than 20!Please get your combat to 20+ before you use this script!');
    Logout;
    NextPlayer2(False);
    Exit;
  end;
end;

procedure GetOriginalWcLevel;
begin
  GameTab(2);
  OriginalWcLvl := GetSkillLevel('Woodcutting');
  if(wclvl<29) then
  begin
    writeln('Your woodcutting level is not high enough to chop willows. Get it up to 30 then you can use this script.');
    Logout;
    NextPlayer2(False);
    Exit;
  end;
end;

procedure GetCurrentWcLevel;
begin
  GameTab(2);
  CurrentWcLvl := GetSkillLevel('Woodcutting');
end;

Procedure HowManyLevelsGained;
begin
  GetCurrentWcLevel;
  LevelUps := CurrentWcLvl - OriginalWcLvl;
end;


procedure Intro;
begin
Writeln('          .__.____    .____                          ');
Writeln('__  _  _|__|    |   |    |    ______  _  __          ');
Writeln('\ \/ \/ /  |    |   |    |   /  _ \ \/ \/ /          ');
Writeln(' \     /|  |    |___|    |__(  <_> )     /           ');
Writeln('  \/\_/ |__|_______ \_______ \____/ \/\_/            ');
Writeln('                   \/       \/                       ');
Writeln(' __   .__.____    .____                              ');
Writeln('|  | _|__|    |   |    |    ___________    ____      ');
Writeln('|  |/ /  |    |   |    |  _/ __ \_  __ \  /    \     ');
Writeln('|    <|  |    |___|    |__\  ___/|  | \/ |   |  \    ');
Writeln('|__|_ \__|_______ \_______ \___  >__|    |___|  /    ');
Writeln('     \/          \/       \/   \/             \/     ');
Writeln('___.                  __                ._.          ');
Writeln('\_ |__ _____    ____ |  | __ ___________| |          ');
Writeln(' | __ \\__  \  /    \|  |/ // __ \_  __ \ |          ');
Writeln(' | \_\ \/ __ \|   |  \    <\  ___/|  | \/\|          ');
Writeln(' |___  (____  /___|  /__|_ \\___  >__|   __          ');
Writeln('     \/     \/     \/     \/    \/       \/          ');
Writeln('                                    By !Pain         ');
end;


procedure proggy;
begin
  ClearDebug;
  Writeln('***************Willow kiLLer***************')
  Writeln('|The script has been running for ' + TimeRunning + '. ');
  Writeln('|Logs dropped: ' + IntToStr(LogsDropped) + '');
  Writeln('|Starting Wc Lvl: ' + InttoStr(OriginalWcLvl) +'');
  Writeln('|Current Wc Lvl: ' + IntToStr(CurrentWcLvl) + '');
  Writeln('|Axes Broken:' + InttoStr(BrokenAxes) + '');
  Writeln('|' + IntToStr(Loads) + ' loads done so far!');
  Writeln('*************************************************');
end;

procedure FinalProggy;
begin
  proggy;
  Writeln('|You have leveled up ' + IntToStr(LevelUps) + '              |');
end;

procedure SmartStart;
begin
  SmartSetupEx(World, false, Signed, false);
  SetTargetDC(SMARTGetDC);
  repeat
    wait(300);
  until(SmartGetColor(253, 233)<>1118604);
end;

begin
ClearDebug;
Intro;
SetupSRL;
MouseSpeed := 17;
Writeln('Openning SMART')
SmartStart;
ScriptID := '499';
SRLID := SRLStatsID;
SRLPassword := SRLStatsPass;
ActivateClient;
DeclarePlayers;
  repeat
    if not loggedin then Loginplayer;
    SetAngle(True);
    MarkTime(nap);
    AntiRandoms;
    GetCBLevel;
    GetCurrentWcLevel;
    Loads := 0;
    repeat
      WillowCutter;
      Inc(Loads);
      Responses;
      sleepp;
      GetCurrentWcLevel;
      proggy;
      DeathWalk;
    until Loads > 39;
    NextPlayer2(True);
  until(AllPlayersinactive)
  FinalProggy;
  ExpGain := LogsDropped * 67.5;
  ExpGained := Round(ExpGain);
  ReportVars[0] := LogsDropped;
  ReportVars[1] := ExpGained;
  ReportVars[2] := Loads;
  ReportVars[3] := LevelUps;
  SRLRandomsReport;
  Writeln('##################################');
  Writeln('Thank you for using Willow Killer.');
  Writeln('##################################');
end.
 
Runescape Gamblingrunescape gambling
Back
Top