Well guys i was making a woodcutting script but i've decided to quit it and make a fisher :P. There are many woodcutting scripts and as i have 99wc I have no interest on this. It is good for a newcomer to learn thought.

Woodcutting scripts are way too easy to make and I like harder things otherwise if it is too easy, I lost all the interest on it.

Here, I will post what i have done you can finnish this script if you want i'm not working on it anymore.

It isnt finished there are parts to make yet some dont work dunno. The standards arent good as well i was thinking of fixing them only when i finnished the script itself. There are lots of additional code as against i just stopped working on it didnt rly care how it was. Credit me if you decide to continue developing the script...

SCAR Code:
program DraynorWillowChopperAndBurnerByColucci;
{$DEFINE FORM }


{.include srl/srl/misc/Smart.scar}
{.include SRL/SRL.scar}
{.include SRL/srl/skill/WoodCutting.scar}
{.include SRL/srl/misc/QuickChat.scar}
{.include SRL/srl/misc/Friends.scar}
{$IFDEF FORM }
{.include srl/srl/misc/Users.scar}
{$ENDIF}
{.include SRL/SRL/misc/WorldSwitcher.scar}

Const
  SmartWorld =161; // Smart world you want to be loaded.
  UsingTinderBox = True  ;  // Do you have a tinderbox in the inventory? ? NOTE: Used to burn the willows. True or False.
  ScriptVersion ='1.0'   ;  //DONT TOUCH. This version is 1.0.
  ShutDownPC = False ;//Will shutdown your pc if True after the script ends. Change it if you want. True of False,
  LoadsPerPlayer = 25; //Loads per player before switching.
  AdditionalTreeColor = 0;//An additional tree color use. Its not needed but i have added it.
  WaitPerWillows = 6000; //The time to wait while chopping willows.
  MyScriptID = '1161' ;// Don't touch..
  TheSRLID = '6974'; // Change it to yours.
  TheSRLPassword = 'ttgfekatz8'; // Change it to yours.

var

  x, y, AxeDTM, BankDTM, HowManyAntibans, HowManyPlayersAreWeUsing, Willows,
  Willow1, Willow2, Willow3, Willow4,  EntFindz0r, a, b, c , d, fx, fy, Level,
  HowManyResponds, Tinderbox, SetTime, LoadsDone, AxeBroken, BrokenAxes, xx,
  PlayersSwitch, TimeRunningSince, Talked, Antibans, Null, Xfile, TriesA, xy,
  TriesB, TriesC, StupidX, StupidY, Ents, WillowsBanked, WillowsBurned,
  WillowsDropped, LogAttemped, SRLDID, SRLDPASS, FishSymbol, BankSymbol, TimeA,
  TotalLogs, TotalLogsX, SexyBeast, WillowsInInv, WLvl, FLvl, iad, FishSpot,
  BankSpot: Integer;
 
  RandomNumber: array [0..25] of integer;
 
  IsAxeWield, WillowFound, BurningLogs, BankingLogs, StartBackupScript,
  DroppingLogs, Cutting, ResultX, ResultY, Worked, WeAreAtFishingSpot,
  WeAreAtBank, AnyRandom, Reason1, Reason2, Reason3, Reason4 :Boolean;
 
  LastRespond, r, TextColour: String;
  TheQuestion, TheRespond: array of array of String;
  World:LongInt;
 

procedure DeclarePlayers;//RS player info and additional things needed to run the script..
begin
 If Not (Players[0].Name = '') then Exit;
  If (Players[0].Name = '') then
  begin
    WriteLn('No Players in SRLPlayerForm.');
    WriteLn('Dont Worry...If you have the players declared in the DeclarePlayers Procedure, youll be fine.'); //Declare them just here :D
    LampSkill := 'woodcutting';
    HowManyPlayersAreWeUsing := 1;// Change if you are going to add more... otherwise it wont to work proper.
    NumberOfPlayers(HowManyPlayersAreWeUsing);
    CurrentPlayer := 0;
    Players[0].Name := 'dddddddddddddddddddddd5'; //Runescape Username
    Players[0].Pass := 'ddddd'; //Runescape Password
    Players[0].nick := 'ddddd'; // 3-4 letters of your Runescape Name here->Don't include here Spaces and Capital letters
    Players[0].Pin  := '4444444444444444444'; //If you don't have one, let it blank
    Players[0].Active := true; //Set to true to be active
    Players[0].Strings[0] := '';  //What do you want do to? Valid options are: 'Dropping' , 'Burning', 'Banking'
    WriteLn('Player Starting is '+Players[CurrentPlayer].Name);
    {
    //ADD MORE IF YOU WANT!
    Players[1].Name := ''; //Runescape Username
    Players[1].Pass := ''; //Runescape Password
    Players[1].nick := ''; // 3-4 letters of your Runescape Name here->Don't include here Spaces and Capital letters
    Players[1].Pin  := ''; //If you don't have one, let it blank
    Players[1].Active := true; //Set to true to be active
    Players[1].Strings[0] := 'Banking';  //What do you want do to? Valid options are: 'Dropping' , 'Burning', 'Banking'
   
    Players[2].Name := ''; //Runescape Username
    Players[2].Pass := ''; //Runescape Password
    Players[2].nick := ''; // 3-4 letters of your Runescape Name here->Don't include here Spaces and Capital letters
    Players[2].Pin  := ''; //If you don't have one, let it blank
    Players[2].Active := true; //Set to true to be active
    Players[2].Strings[0] := 'Banking';  //What do you want do to? Valid options are: 'Dropping' , 'Burning', 'Banking'

    Players[3].Name := ''; //Runescape Username
    Players[3].Pass := ''; //Runescape Password
    Players[3].nick := ''; // 3-4 letters of your Runescape Name here->Don't include here Spaces and Capital letters
    Players[3].Pin  := ''; //If you don't have one, let it blank
    Players[3].Active := true; //Set to true to be active
    Players[3].Strings[0] := 'Banking';  //What do you want do to? Valid options are: 'Dropping' , 'Burning', 'Banking'
    }

  end;
end;

Procedure Antiban;Forward;
Procedure FindWhereWeAre;Forward;
Procedure AfterInvFull;Forward;
Procedure FindWillows;Forward;
Procedure AutoTalker;Forward;
Procedure TurnOffPC;Forward;
Procedure DropLogs;Forward;
Procedure BackupScript;Forward;
Procedure TheProggy;Forward;
Procedure LoadDTMS;Forward;

Function AntiRandoms: Boolean;//Note that if a random doesnt get solved, its not my script's fault its SRL fault. There are randoms that werent solved yet. Help SRL Community by taking screens, giving accounts in randoms, etc
var i:Integer;
  begin
    Case I of
    0:If FindNormalRandoms then AnyRandom:=True;
    1:If FindInventoryRandoms then AnyRandom:=True;
    2:If FindNonInventoryRandoms then AnyRandom:=True;
    end;
    Result:=AnyRandom;
      case random(4) of
      0: r:= 'N';
      1: r:= 'E';
      2: r:= 'S';
      3: r:= 'W';
      end;
    If FindFight then
    begin
      WriteLn('Found a fighting random');
      Result:=True;
      RunAway(r,True,1,15000 + Random(2000))
      WriteLn('Successfully avoided the fight');
      GetMMLevels('hp', TextColour);
      end;
  If (HPPercent < 25)  then
  begin
      If Not GameTab(1) then exit;
      If GameTab(1) then
      begin
      WriteLn('Your HP is ' + IntToStr(HPPercent) + '% ONLY. Logging out To Avoid Dying.');
      LogOut;
      NextPlayer(False);
      end;
  end;
end;

Function FindBrokenAxe(Slot : Integer): Boolean;//By Cazax...I pretend to do my own ent finder and broken axe too.
Var
  ATPA : T2DPointArray;
  Box : TBox;
  T : Integer;
Begin
  T := GetCurrentTab;
  GameTab(4);
  Wait(100);
  SetArrayLength(ATPA, 3);
  Box := InvBox(Slot);
  FindColorsTolerance(ATPA[0], 924021, Box.X1, Box.Y1, Box.X2, Box.Y2, 7);
  FindColorsTolerance(ATPA[1], 791908, Box.X1, Box.Y1, Box.X2, Box.Y2, 7);
  FindColorsTolerance(ATPA[2], 923761, Box.X1, Box.Y1, Box.X2, Box.Y2, 7);
  Result := (Length(ATPA[0]) <= 4) And (Length(ATPA[1]) <= 4) And (Length(ATPA[2]) <= 4)
  If Not Result Then
  Begin
    GameTab(5);
    Wait(100);
    FindColorsTolerance(ATPA[0], 924021, 575, 291, 602, 318, 7);
    FindColorsTolerance(ATPA[1], 791908, 575, 291, 602, 318, 7);
    FindColorsTolerance(ATPA[2], 923761, 575, 291, 602, 318, 7);
    Result := (Length(ATPA[0]) <= 4) And (Length(ATPA[1]) <= 4) And (Length(ATPA[2]) <= 4)
  End;
  GameTab(T);
End;

Procedure BankLogs;// Will BankLogs. It's a mess i know
var
   x, y:Integer;
begin
  If Not LoggedIn Then Exit;
  If not InvFull Then Exit;
  If FindSymbol(x,y,'bank') then
  Begin
    WriteLn('Found Bank')
    Mouse(x, y, 1, 1,true) ;
    FFlag(0);
    WeAreAtBank:=True;
  end;
  If (not (OpenBank('db', true, true))) then
    If (not (OpenBankFast('db'))) then
    begin
      FindObjCustom(x, y, ['ank', 'ooth'], [1792105, 4615547, 2970721], 0)
      Mouse(x, y, 2, 2, false);
      Wait(1000+Random(1000));
    end;
  If PinScreen then
    wait(500);
    InPin(Players[CurrentPlayer].Pin);
    wait(500+random(1000));
  If BankScreen then
    Case IsAxeWield of
    True:
      begin
        DepositAll;
        WillowsBanked:=WillowsBanked+28;
        TheProggy;
        CloseBank;
      end;
    False:
      begin
        Deposit(2, 28, True);
        WillowsBanked:=WillowsBanked+27;
        TheProggy;
        CloseBank;
      end;
    end;
  begin
    FindSymbol (x,y,'fishing spot')
    Wait(100 + Random(200));
    Mouse(x,y,0,0,true);
    WeAreAtBank:=False;
    WeAreAtFishingSpot:=True;
    WriteLn('Banked all. Now going to chop willows again :D. ');
    Wait(599+random(69));
    Exit;
  end;
end;

Procedure NewLevel;//When you lvl up, it will click to continue and count +1 level which will be in TheProggy.
begin
  If Not LoggedIn Then Exit;
  If FindNPCChatText('congratulu', Nothing) then
  begin
    WriteLn('Level Up!!!!');
    Inc(Level);
  end;
  If FindText(x, y, 'ontinue', NPCCHARS, MCX1, MCY1, MCX2, MCY2) Then
    Mouse(x, y, 1, 1, True);
end;

Procedure BurnLogs;// Will Burn Logs. It may not work 100% still working on it
begin
 If Not LoggedIn Then Exit;
 If not FindDTM(TinderBox, x, y, MIX1, MIY1, MIX2, MIY2)
 or FindDTM(WillowsInInv, x, y, MIX1, MIY1, MIX2, MIY2) then FindWillows;
 repeat
 MarkTime(SexyBeast);//I was bored when i built this procedure nice name anyway
  If FindDTM(TinderBox, x, y, MIX1, MIY1, MIX2, MIY2) then
    begin
      Mouse(x, y, 3, 3, True);
      Wait(540 + Random(180));
      if FindDTM(WillowsInInv, x, y, MIX1, MIY1, MIX2, MIY2) then
      begin
        wait(500+random(500));
        AntiRandoms;
        Mouse(x, y, 3, 3, True);
        if (FindBlackChatMessage('advan')) or (FindBlackChatMessage('catches')) then
        Inc(WillowsBurned);
      end;
    end;
  If FindBlackChatMessage('light a fire') then// Please i never help here i dont think it works 100%.
  begin
  Iad:= Random(6);
    case Iad of //StormLighter
     0: ClickMouseBox(246,220,263,236, false);//Also i need someone to explain me how MouseBox and ClickMouseBox works didnt found any relevant tut
     1: ClickMouseBox(253,148,272,168, false);//Basically i need something
     2: ClickMouseBox(222,174,234,188, false);//To get in another place when can't light fire
     3: ClickMouseBox(185,176,202,195, false);//That didnt made sense. Well I think you understand it anyway
     4: ClickMouseBox(240,240,256,259, false);//Dunno if this works..
     5: ClickMouseBox(252,112,267,124, false);//But it's a worth try.
  else
  begin
     WriteLn('Shit it didnt work. Wait for the next version to get a proper burner :)');
     WriteLn('Dropping the logs.');
     DropLogs;
  end;
  end;
    If SexyBeast > 5000000 Then
      begin
      WriteLn('The Burn Logs Procedure Failed. Post What Happened In My SRL Script Thread');
      WriteLn('Dont be mad! The script will continue');
      WriteLn('Now ill be dropping logs..');
      DropLogs;
      Exit;
      end;
  end;
  until not FindDTM(WillowsInInv, x, y, MIX1, MIY1, MIX2, MIY2)
  If not FindDTM(WillowsInInv, x, y, MIX1, MIY1, MIX2, MIY2) then
  begin
  Inc(LoadsDone);
  WriteLn('Burn Logs Procedure Worked!!!!!!!!!!!');
  TheProggy;
  end;
end;

Procedure BrokeAxe;//Check if axe is broken and tries to find a new one in the bank.
begin
  If FindBrokenAxe(1) then
  If (FindBlackChatMessage('You do not')) Then WriteLn('Axe is broken.....');
  If FindSymbol(x,y, 'Bank') then
  begin
    Mouse(x,y,0,0,true);
    FFlag(0);
    WeAreAtBank:= True;
    WriteLn('We are in the bank');
  end;
  Case random(2) of
  0:
    begin
      FindObjCustom(x, y, ['ank', 'ooth'], [1792105, 4615547, 2970721], 0)
      Mouse(x, y, 2, 2, false);
      Wait(1000+Random(1000));
    end;
  1:
    begin
      OpenBankFast('db');
    end;
  end;
  If FindDtm(AxeBroken, x, y, MSX1, MSY1, MSX2, MSY2) then
    begin
      Mouse(x, y, 8, 8, false);
      Wait(400);
      Chooseoption('All');
    end;
  If not FindDTM(AxeDTM, x, y, MSX1, MSY1, MSX2, MSY2) then
    begin
      WriteLn('Sorry. BrokeAxe procedure didnt work at all. Please post what happened in my Thread at SRL-forums.com.');
      Exit;
    end;
  If FindDTM(AxeDTM, x, y, MSX1, MSY1, MSX2, MSY2) then
  begin
    SearchBank('Axe');
    FindDTM(AxeDTM, x, y, MSX1, MSY1, MSX2, MSY2)
    Mouse(x, y, 4, 4, False);
    ChooseOption('Withdraw-All');
    CloseBank;
    GameTab(4);
    If FindDTM(AxeDTM, x, y, MSX1, MSY1, MSX2, MSY2) then
    If not FindDTM(AxeBroken, x, y, MSX1, MSY1, MSX2, MSY2) then
    WriteLn('Seems like BrokeAxe procedure worked. Thats great!');
  end;
end;
 
Procedure BackupScript; // If something went wrong with the script, this will try to start it again and resolve the problem
begin
  If Not LoggedIn Then
  begin
    LogAttemped := LogAttemped + 1;
    LogInPlayer;
  end;
  try FindWhereWeAre except WriteLn('Couldnt find where the player is.');
  If (ResultX = False) then
    begin
      LogOut;
      NextPlayer(false);
    end;
  If ResultX = True then
    begin
      FindWhereWeAre;
      Antiban;
      AntiRandoms;
    end;
  If LogAttemped <= 5 then
    Begin
      Writeln(Capitalize(Players[CurrentPlayer].Name) + ': Something is wrong within this player. Lets try again.');
      LoginPlayer;
      FindWhereWeAre;
      FindWillows;
    end;
  end;
end;


Procedure LoadDTMS; //Will Load all the DTMS needed
begin
  BankDTM := DTMFromString('78DA635CC4CCC070820105BC7AFA89E13F906' +
       '604E2FF40C0381DA8E63CAA9A7FFF04E16A4080711A50CD315435' +
       '7FFE30A1AA0199730855CDD7AF0CA86AE662AA41370700AD181AA' +
       '1');
  AxeBroken := DTMFromString('78DA63CC666260B8C580025A9205182481342' +
       '310FF0702C662A09A3B0C6880118904D2A54035B709A82903AAB9' +
       '4F404D3250CD47FC6A00A1090BB2');
  AxeDTM := DTMFromString('78DA63CC666260B8CD80025A9205182481342' +
       '310FF0702C672A09A7B0C6880118904D2A540353708A82901AA79' +
       '48404D3250CD47FC6A00A3CD0BB6');
  Willow2 := DTMFromString('78DA634C666260486564400661FE86601A26C' +
       'AE80454938EAA26B3D217554D14508D23AA1A0B57255435E54035' +
       '51A86A9C7D3450D56401D5D4A1AAC96F084755E309541389AAC6D' +
       '05A05554D20508D03AA1A4B7765543515987E8FCD764155130A54' +
       '5388AAC6DED712554D11A61A136755143500B1590FF2');
  Willow1 := DTMFromString('78DA639CC3C8C0B0840105F879E832FC07D24' +
       '01986FF40C0B809C8DA88AAC6C1471FAE0604183700597350D5E8' +
       '5BC9A0AA990264F5A1AAB170534755D308642D445563ECA082AAA' +
       '60DC8DA82AAC6C9560D450D008EF0155A');
  Willow3 := DTMFromString('78DA636C60646038CF8002B2EB4218FE0369A' +
       '00CC37F20609C0C646D475563E769085703028C9B81AC5368E634' +
       'C6A2AA590E64DD445553DD9B8FAAA615C8BA82AAA6B42B0255CD5' +
       'C20EB38AA1A3565515435D540D609543519E561A86AEA81ACDBA8' +
       '6AFC63EC50D5F401590F51D504A45BA0840F00C53F26E1');
  Willow4:= DTMFromString('78DA63AC606460F8CF80025C1D34C04240198' +
       '6FF40C0B819C87A88AAC6D0540E4C3342F98CD140162B238A1A4B' +
       '272D54357540D62B547358595950D56C01B24450CDD1369147559' +
       '30D6429A3AA718B364655530B6445A0AAB1B550465103007DD30F' +
       'E1');
  WillowsInInv:= DTMFromString('78DA639467666078C1800282BD6419FE03694' +
       '620FE0F048CA240354F51D514A4DBC3D58000A31850CD47026A54' +
       '806A1EA3AAF173934155A30154F316B77BC06A04816ADEA0AAC94' +
       'AB2465103005F8F158D');
  TinderBox := DTMFromString('78DA638C67626078C18006189148205D0A547' +
       '39D809A04A09A7B04D49400D5DC27A0A61CA8E60D0135E940351F' +
       'F1AB0100C4B607FE');
  FishSpot := DTMFromString('78DA63AC676660D8CB8002B8B2DE30FC07D28' +
       'C40FC1F0818416A0EA0AA6114DE095703E63703D5EC4155B37BF7' +
       '7A5435AD4035FB50D5CC9AD50757C304A25B30D5F0D89E80AB610' +
       '6D120F7ECC6ED66B09A6AC2E60000413C1D6C');
  BankSpot := DTMFromString('78DA635CC2CCC0D0C980025E9D1660F80FA41' +
       '981F83F10302E07AAE9415593E6CD085703028C20735A50D5AC99' +
       '6B84AA6611504D370135207326E0B70B00A9C81519');
       
  WriteLn('Loaded all DTMS');
end;

Procedure FindWhereWeAre;//Just to startup. My first procedure!
var
   x, y: Integer;
begin
    Worked:=False;
    MakeCompass('NW');
    If FindDTM(Willow1, x, y, MSx1, MSy1, MSx2, MSy2)
    or FindDTM(Willow2, x, y, MSx1, MSy1, MSx2, MSy2)
    or FindDTM(Willow3, x, y, MSx1, MSy1, MSx2, MSy2)
    or FindDTM(Willow4, x, y, MSx1, MSy1, MSx2, MSy2) then
    begin
    GetMousePos(x,y);
    Mouse(x, y, 4, 4, False);
    AntiRandoms;
    FindWillows;
    Exit;
    end;
    If RadialWalk(998943 , 240, 195, 80, 1, 1) Then
    begin
    AntiRandoms;
    WriteLn('Walked To Willows Using Radial Walk');
    wait(109+random(699));
    Worked:=True;
    Exit;
    end;
    If not RadialWalk(998943 , 240, 195, 80, 1, 1) Then
    If Not InvFull Then
    begin
    if FindDtm(FishSpot, x, y, MMX1, MMY1, MMX2, MMY2) then begin
    GetMousePos(x,y);
    Mouse(x, y, 4, 4, False);
    WriteLn('Walking To Willows Using DTMS');
    Worked:= True;
    Exit;
    end;
    If not FindDtm(FishSpot, x, y , MMX1, MMY1, MMX2, MMY2) then begin
    If FindDtm(BankSpot, x, y , MMX1, MMY1, MMX2, MMY2) then begin
    WriteLn('Walking To Bank Using DTMS');
    GetMousePos(x,y);
    Mouse(x, y, 4, 4, False);
    Worked:= True;
    Exit;
    end;
    If FindDtm(FishSpot, x, y , MMX1, MMY1, MMX2, MMY2) then
    WriteLn('Walking Now To Willows Using DTMS');
    GetMousePos(x,y);
    Mouse(x, y, 4, 4, False);
    Worked:= True;
    Exit;
    end else begin
    WriteLn('Last try.');
    LoadSymbolBitmapColor('fish');
    LoadSymbolBitmapColor('bank');
    Symbolaccuracy :=4;
    wait(200+random(154));
    if FindSymbol(x,y,'fish')then
    begin
    wait(500+random(600));
    Worked:=True;
    mouse(x,y,2,2,true);
    end;
    if not FindSymbol(x, y, 'fish')then
    begin
    If FindSymbol(x, y, 'bank') then
    begin
    Mouse(x,y,2,2, true);
    Worked:=True;
    Exit;
    end;
    If Not FindSymbol(x, y, 'bank') or FindSymbol(x, y, 'fishing spot')then
    begin
    Logout;
    Worked:=False;
    NextPlayer(false);
    WriteLn('Logging Out...Reason - Couldnt find the Willows Spot');
    Reason1:=True;
    Exit;
    end else
    begin
     Worked:=False;
     WriteLn('We FAILED.');
     NextPlayer(False);
     end;
    end;
   end;
  end;
end;

procedure DropLogs;//Drops the logs..If your axe is in the inventory and NOT IN THE 1st PLACE, put it in the 1st place otherwise it will be dropped.
Var
   i:Integer;
begin
  if not (LoggedIn) then exit;
  if (InvFull) then
  begin
    case IsAxeWield of
    True:
    for i := 1 to 28 do
      begin
        DropItem(i);
        Wait(500+random(500));
        WillowsDropped:= WillowsDropped+28;
        Inc(LoadsDone);
      end;
      False:
      for i := 2 to 28 do
      begin
        DropItem(i);
        Wait(500+random(500));
        WillowsDropped:= WillowsDropped+27;
        Inc(LoadsDone);
      end;
    end;
  end;
  TheProggy
  Exit;
end;

{function MyOwnEntFinder:Boolean; // Still needs testing.. DONT use it yet.
var
   x, y, i:integer;
   EntTPA : TPointArray;
   MyPoint2 : TPoint;
begin
  x := MSCx;
  y := MSCy;
  FindColorsSpiralTolerance(x, y, EntTPA, 383705, MSx1, MSy1, MSx2, MSy2, 10);
  if Length(EntTPA) = 0 then FindColorsSpiralTolerance(x, y, EntTPA, 65535, MSx1, MSy1, MSx2, MSy2, 10);
  If not Length(EntTPA) = 0 Then
    begin
      WriteLn('!!!Found Ent!!!');
      Result:=True;
    end;
    for i := 0 to High(EntTPA) do
    begin
      MyPoint2 := EntTPA[i]
      MMouse (MyPoint2.x, MyPoint2.y, 3, 3);
    if (IsUpTextMultiCustom(['chop', 'down'])) then
    begin
      Writeln('Waiting for it to go away');
      Result := True;
      Inc(Ents);
      Mouse(x, y, 4, 4, False);
      Wait(100+Random(100));
      ChooseOption('cancel');
      AntiRandoms;
      AntiBan;
      AutoTalker;
    end else
    begin
      WriteLn('My Ent Finding Failed. Trying With SRL one.');
      FindEnt(x,y, True);
      Mouse(x, y, 4, 4, False);
      Wait(100+Random(100));
      ChooseOption('cancel');
      Inc(Ents);
      If Not FindEnt(x,y, True) Then
      WriteLn('No ent was found. If there is one, then it failed.');
    end;
   end;
end;  }


Procedure WhileCutting;
begin
  MarkTime(TimeA);
  repeat
  Wait(WaitPerWillows);
  while TimeA < 10000 do
  begin
  Antiban;
  AntiRandoms;
  If FindEnt(x,y, True) then Inc(Ents);
  AfterInvFull;
  AutoTalker;
  Newlevel;
  end;
  until TimeA > 500000 ;
  wait(100+random(200));
end;

Procedure FindWillows;
var
  TreeColor: array [0..4] of integer;
  WillowTPA : TPointArray;
  MyPoint : TPoint;
  x, y, i, WeFailed, d : Integer;
begin
  If InvFull Then AfterInvFull;
  If Not LoggedIn then Exit;
  TreeColor[0] := 332817;
  TreeColor[1] := 3765091;
  TreeColor[2] := 2179633;
  TreeColor[3] := 3230282
  TreeColor[4] := 3821637;
  x := MSCx;
  y := MSCy;
  repeat
  FindColorsSpiralTolerance(x, y, WillowTPA, 3692618, MSx1, MSy1, MSx2, MSy2, 10);
    if Length(WillowTPA) = 0 then FindColorsSpiralTolerance(x, y, WillowTPA, 4681822, MSX1, MSY1, MSX2, MSY2, 10);
    if not Length(WillowTPA) = 0 then WriteLn('Found Willow');
    for i := 0 to High(WillowTPA) do
      begin
       MyPoint := WillowTPA[i];
       MMouse (MyPoint.x, MyPoint.y, 3, 3);
      if (IsUpTextMultiCustom(['chop', 'llow'])) then
      case Random(2) of
      0:begin
        If not LoggedIn Then BackUpScript;
           GetMousePos(x,y);
           Mouse(x, y, 4, 4, False);
           Wait(400+Random(900));
           ChooseOption('hop');
           ResultX:=True;
           If FindEnt(x,y, True) then Inc(Ents);
           Inc(Willows);
           WriteLn('Chopping Willows');
           WriteLn('Willows Found = '+IntToStr(Willows)+' .');
           WriteLn('Waiting While Cutting');
           WhileCutting;
           Exit;
        end;
      1:
         begin
         If not LoggedIn Then BackUpScript;
           GetMousePos(x,y);
           Mouse(x, y, 4, 4, True);
           ResultX:=True;
           If FindEnt(x,y, True) then Inc(Ents);
           Inc(Willows);
           WriteLn('Chopping Willows');
           WriteLn('Willows Found = '+IntToStr(Willows)+' .');
           WriteLn('Waiting While Cutting');
           WhileCutting;
           Exit;
        end;
       end;
      If InvFull then
      begin
       WriteLn('Inventory is full.');
       AfterInvFull;
       end;
  if (WeFailed = 5) then
   begin
    WriteLn('We Failed Finding Willows wdf :(');//lol
    if FindObjTPA(x, y, TreeColor[d], 30, 2, 15, 25, 10, ['Willow', 'Will', 'illo', 'llow']) then
    begin
    GetMousePos(x,y);
    Mouse(x, y, 4, 4, True);
    ResultX:=True;
    WriteLn('Waiting While Cutting');
    WhileCutting;
    end else
    NextPlayer(False);
    LoginPlayer;
    ResultX:=False;
   end;
   While ResultX do
   begin
   NewLevel;
   AutoTalker;
   AntiRandoms;
   Antiban;
   If FindEnt(x,y, True) then Inc(Ents);
   end;
  end;
 until (FindBlackChatMessage('is too full')) or InvFull or (WeFailed = 5) or not LoggedIn;
end;


Procedure TheProggy;//This procedure is just spam (lol). SendReport will be available soon.
begin
  TotalLogs:= TotalLogs + (WillowsDropped + WillowsBurned + WillowsBanked);
  WriteLn('=========== Colluci Willow Chopper And Burner  ==============');
  WriteLn(Padr('|| Talked: ' + IntToStr(Talked), 49) + '||');
  WriteLn(Padr('|| Switched Players: ' + IntToStr(PlayersSwitch), 49) + '||');
  WriteLn(Padr('|| AntiBans: ' + IntToStr(AntiBans), 49) + '||');
  WriteLn(Padr('|| Loads: ' + IntToStr(LoadsDone), 49) + '||');
  WriteLn(Padr('|| Ran For: ' + TimeRunning, 49) +     + '||');
  WriteLn(Padr('|| Ents Found: ' + IntToStr(Ents), 49) + '||');
  WriteLn(Padr('|| Willows Dropped: ' + IntToStr(WillowsDropped), 49) + '||');
  WriteLn(Padr('|| Willows Burned: ' + IntToStr(WillowsBurned), 49) + '||');
  WriteLn(Padr('|| Willows Banked: ' + IntToStr(WillowsBanked), 49) + '||');
  WriteLn(Padr('|| Levels Up: ' + IntToStr(Level), 49) + '||');
  WriteLn(Padr('|| Experience Gained: ' + FloatToStr(TotalLogs*65.5), 49) + '||');
  WriteLn('==============================================================');
  SRLRandomsReport;



Procedure SaveProggies;//Will get better in next version.
begin
  Writeln('Saved the Proggy at '+(ScriptPath + 'Draynor Willow Chopper & Burner '+ ScriptVersion+ 'PROGGY.txt'));
  Xfile := RewriteFile(ScriptPath + 'Draynor Willow Chopper & Burner '+ ScriptVersion+ ' @ PROGGY.txt', False);
  WriteFileString(Xfile,'=============== Colluci Willow Chopper And Burner  =============='+Chr(13)+chr(10));
  WriteFileString(Xfile,'|| Talked: ' + IntToStr(Talked) + '||'+Chr(13)+chr(10));
  WriteFileString(Xfile,'|| Switched Players: ' + IntToStr(PlayersSwitch) + '||'+Chr(13)+chr(10));
  WriteFileString(Xfile,'|| AntiBans: ' + IntToStr(AntiBans) + '||'+Chr(13)+chr(10));
  WriteFileString(Xfile,'|| Loads: ' + IntToStr(LoadsDone) + '||'+Chr(13)+chr(10));
  WriteFileString(Xfile,'|| Ran For: ' + TimeRunning +     + '||'+Chr(13)+chr(10));
  WriteFileString(Xfile,'|| Ents Found: ' + IntToStr(Ents) + '||'+Chr(13)+chr(10));
  WriteFileString(Xfile,'|| Willows Dropped: ' + IntToStr(WillowsDropped) + '||'+Chr(13)+chr(10));
  WriteFileString(Xfile,'|| Willows Burned: ' + IntToStr(WillowsBurned) + '||'+Chr(13)+chr(10));
  WriteFileString(Xfile,'|| Willows Banked: ' + IntToStr(WillowsBanked) + '||'+Chr(13)+chr(10));
  WriteFileString(Xfile,'|| Levels Gained: ' + IntToStr(Level) + '||'+Chr(13)+chr(10));
  WriteFileString(Xfile,'=============================================================='+Chr(13)+chr(10));
  WriteFileString(Xfile,'Script stopped at ' + TheTime + ' ' + TheDate(3) + '.'+Chr(13)+chr(10));
  CloseFile(Xfile);
end;

Procedure ScriptTerminate;
begin
  TheProggy;
  Writeln('Script will end.');
  Writeln('Thanks for using this script!');
  Writeln('Script stopped at ' + TheTime + ' ' + TheDate(3));
  Writeln('Post Suggestions/Bugs/Proggies At Script Thread');
  SaveProggies;
  TerminateScript;
end;


Procedure AfterInvFull;
begin
 If Not LoggedIn Then Exit;
 If Not (InvFull) Then Exit;
  If (InvFull) Then
   begin
    MakeCompass('N');
    WriteLn('Getting what you want to do');
    Case Players[CurrentPlayer].Strings[0] of
    'Dropping':
       begin
        WriteLn('Dropping logs');
        DropLogs;
        Wait(100+random(500));
       end;
    'Banking':
       begin
        WriteLn('Banking Logs');
        BankLogs;
        Wait(100+random(500));
       end;
    'Burning':
       begin
        WriteLn('Banking Logs');
        BankLogs;
        Wait(100+random(500));
       end;
    end;
    if (Players[CurrentPlayer].Strings[0] <> 'Banking')
    or (Players[CurrentPlayer].Strings[0] <> 'Dropping')
    or (Players[CurrentPlayer].Strings[0] <> 'Burning') then
    begin
    WriteLn(Capitalize(Players[CurrentPlayer].Name) +'- Error in DeclarePlayers Procedure:')
    Writeln('Please Enter a Valid Option in Players[CurrentPlayer].Strings[0].(Banking, Dropping Or Burning). I shouldnt but ill be dropping the logs.');
    DropLogs;
    end;
   end;
  end;

Procedure Antiban;//You can add more if you know what you are doing
begin
 If Not LoggedIn Then Exit;
  Case Random(150) of
    1:
      begin
        Boredhuman;
        Inc(HowManyAntibans);;
        WriteLn('Antiban - BoredHuman');
        Exit;
      end;
     
    19:
      begin
        PickupMouse;
        Inc(HowManyAntibans);;
        WriteLn('Antiban - PickupMouse');
        Exit;
      end;

    31:
       begin
       Inc(StupidX);
       AddIgnore('Zezima'+IntToStr(StupidX));
       Wait(100+random(900));
       DeleteIgnore('Zezima'+IntToStr(StupidX));
       Inc(HowManyAntibans);;
       WriteLn('Antiban - Ignore(Add/Remove)');
       Exit;
       end;
       
    41:
       begin
       Inc(StupidY);
       AddFriend('tehnoobshow'+IntToStr(StupidY));
       Wait(100+random(500));
       DeleteFriend('tehnoobshow'+IntToStr(StupidY));
       Inc(HowManyAntibans);;
       WriteLn('Antiban - Friend(Add/Remove)');
       Exit;
       end;
     
    125:
      begin
        Hoverskill('random', false)
        Inc(HowManyAntibans);;
        WriteLn('Antiban - HoverSkill->Random');
        Exit;
      end;
     
    69,54,67:
      begin
        Makecompass('n');
        wait(30+random(30));
        Makecompass('s');
        wait(30+random(30));
        Makecompass('random');
        Inc(HowManyAntibans);;
        WriteLn('Antiban - Random Changing of Compass');
        Exit;
      end;
     
    143:
      begin
        Hoverskill('Woodcutting', false);
        Inc(HowManyAntibans);;
        WriteLn('Antiban - HoverSkill->Woodcutting');
        Exit;
      end;

    87:
      begin
        Gametab(1);
        wait(250+random(350));
        Gametab(2);
        Wait(250+random(350));
        Gametab(3);
        Wait(250+random(350));
        Gametab(4);
        Wait(150+random(200));
        Inc(HowManyAntibans);;
        WriteLn('Antiban - Gametab');
        Exit;
      end;
     
    48:
      begin
        Hoverskill('Firemaking', false);
        Inc(HowManyAntibans);;
        WriteLn('Antiban - Hoverskill->Firemaking');
        Exit;
      end;
     
    186:
      begin
        SleepAndMoveMouse(1000+random(2000));
        Inc(HowManyAntibans);;
        WriteLn('Antiban - SleepAndMoveMouse');
        Exit;
      end;

    201:
   
      begin
        Mouse(random(600),random(500),0,0,false)
        Chooseoption('ancel');
        Inc(HowManyAntibans);;
        WriteLn('Antiban - Random Mouse Click and Cancel');
        Exit;
      end;
   
    249:
   
      begin
        Mouse(random(600),random(500),0,0,false)
        chooseoption('xamine')
        Inc(HowManyAntibans);;
        WriteLn('Random Mouse Click and Examine');
        Exit;
      end;
     
    200:
      begin
       If QCOpen then Exit;
        OpenQC;
        Wait(10+random(100));
        CloseQc ;
        QCSayLevel('Woodcutting');
        Inc(HowManyAntibans);;
        WriteLn('Antiban - QuickChat(beta may not work)');;
        Exit;
      end;
    end;
end;

Procedure FindAnAxe;
 begin
  If Not Loggedin Then Exit;
   FindNormalRandoms;
   If (FindAxe) Then
     begin;
       ClearDebug;
       WriteLn('Found an axe. Checking if it is wielded or not');
     end;
       Gametab(4)
       wait(200+random(200))
   If FindDTM(AxeDTM,x,y,MIX1,MIY1,MIX2,MIY2) Then
     begin
       Writeln('The Axe is in the Inventory');
       Writeln('***Warning***If the axe is not as the 1st place of the inventory, the script will Drop/Bank it');
       Writeln('Please put it in the first place. This script will NOT detect if it is in the first place***Warning***');
       IsAxeWield:= False;
       FindWhereWeAre ;
       Exit;
     end;
   If not FindDTM(AxeDTM,x,y,MIX1,MIY1,MIX2,MIY2) Then
     begin
       Gametab(5)
       wait(200+random(200))
   If FindDTM(AxeDTM,x,y,MIX1,MIY1,MIX2,MIY2)Then
     begin
       Writeln('The Axe is wielded.');
       IsAxeWield := true ;
       FindWhereWeAre;
       Exit;
     end;
   If not FindDTM(AxeDTM,x,y,Mix1,miy1,mix2,miy2)then
     begin
       WriteLn('You dont have any axe. Go buy one and start the script again.')
       WriteLn('Logging Out...')
       Logout;
       WriteLn('Setting Player not active. NextPlayer.')
       NextPlayer(False);
    end;
  end;
end;


Procedure Welcome;
 begin
  GetApplication.Messagebox('Welcome To Colluci Script! ' + chr(13) +  'Have Fun!', 'Welcome', 0)
  ClearDebug;
    WriteLn('Welcome To The Script-> Draynor Willow Chopper & Burner')
    WriteLn('Made By:')
  wait(2500);
  ClearDebug;
    WriteLn(' _____   _____   _       _       _   _   _____    _  ')
    WriteLn('/  ___| /  _  \ | |     | |     | | | | /  ___|  | | ')
    WriteLn('| |     | | | | | |     | |     | | | | | |      | |')
    WriteLn('| |     | | | | | |     | |     | | | | | |      | |')
    WriteLn('| |___  | |_| | | |___  | |___  | |_| | | |___   | | ')
    WriteLn('\_____| \_____/ |_____| |_____| \_____/ \_____|  |_| ')
  wait(2500);
 end;

function CheckAndDownload(ScriptVersionURL, ScriptURL, ExactFileName : string) : boolean;
var
  FileNum : Integer;
begin
  GetPage(ScriptVersionURL);
  Result:=GetPage(ScriptVersionURL) = ScriptVersion
  If Result = true then
  WriteLn('Version is the newest');
  if Result = false then
  begin
    case GetApplication.Messagebox('Version ' + GetPage(ScriptVersionURL) + ' is the newest Version' + chr(13) + 'Download the New Version?' , 'Download Latest Version Of Script', 4) of
    0 : begin
          FileNum := ReWriteFile(ScriptPath + ExactFileName, true);
          WriteFileString(FileNum, GetPage(ScriptURL));
          CloseFile(FileNum);
          GetApplication.MessageBox('The current version of ' + ExactFileName + ' has been successfully downloaded.' + chr(13) + 'Please reopen this script.', 'Please Reopen the Script', 0);
          WriteLn('Now opening the script page');
          OpenWebPage('http://www.google.com');
          TerminateScript;
      end;
    end;
  end;
end;

procedure TurnOffPC;
begin
  If (ShutDownPC = False) Then Exit;
  If (ShutDownPC = True) then
  WriteLn('Your PC will shutdown ...');
  wait(2500+random(200));
  KeyDown(92);
  wait(200);
  KeyDown(82);
  wait(200);
  KeyUp(82);
  wait(200);
  KeyUp(92);
  wait(200);
  WriteLn('Now!');
  Sendkeys('shutdown -s -f -t 00'+chr(13));
  end;


procedure AutoTalker;// Add More If you want..it's random soz..I took some TypeSends for others scripts. Thats not copying i think its just being lazy? :=)
Var Chat, Talked, l, d:Integer;
begin
  If Not LoggedIn Then Exit;
  MarkTime(Chat);
  If TimeFromMark(Chat) <= 50000 Then exit;
  Case random(150) of
    0:  TypeSend('Hey, hello...');
    1:  TypeSend('can i have free stuuf');
    2:  TypeSend('haha');
    3:  TypeSend('gotta lvl my wc soon');
    4:  TypeSend('im training my wc');
    5:  TypeSend('ure a noob');
    6:  TypeSend('begone newbs');
    7:  TypeSend('wc lvls');
    8:  TypeSend('fm lvls');
    9:  TypeSend('ilvy2 lol');
    10: TypeSend('i hate skillers');
    11: TypeSend('I own man');
    12: TypeSend('chickens cant kill u');
    13: TypeSend('we can say ass now :>');
    14: TypeSend('stop it');
    15: TypeSend('lol and dont spam me!');
    16: TypeSend('get over it');
    17: TypeSend('get lost noob');
    18: TypeSend('dont be stupid');
    19: TypeSend('I hate randoms');
    20: TypeSend('i hate you');
    21: TypeSend('i luv this game');
    22: TypeSend('rofl');
    23: TypeSend('Man im bored');
    24: TypeSend('wc is sooo boring!');
    25: TypeSend('hehe gime dem trees!');
    26: TypeSend('so sleepy...');
    27: TypeSend('arg cmon u stupid tree!');
    28: TypeSend('haha im so nooby');
    29: TypeSend('woot i own s0 much');
    30: TypeSend('WIllows is all mine!');
    31: TypeSend('arg Willows are so slooow coz many players here');
    32: TypeSend('yay nerly lvl!');
    33: TypeSend('im da man!');
    34: TypeSend('omg i wish i was a mem...');
    35: TypeSend('red: shake: mwuahahaha my willows');
    36: TypeSend('white: have a good day all of you... =]');
    37: TypeSend('red: shake: Im goin 2 eat ur souls mwuahahahahahahahahahaha');
    38: TypeSend('what sorta music yall listen 2?');
    38: TypeSend('red: shake: Leave These Woods and Never Return');
    39: TypeSend('yay da simpsons is on =]');
    40: TypeSend('arg nothin on tv =[');
    41: TypeSend('mmm im hungry');
    42: TypeSend('sweet cake!');
    43: TypeSend('=p i get pavalova');
    44: TypeSend('chooocolate');
    45: TypeSend('mmmm donuts');
    46: TypeSend('ow my cat scratched me!');
    47: TypeSend('lool my cat is goin crazy');
    48: TypeSend('yay nerly tea time');
    49: TypeSend('hmph stupid parents');
    50: TypeSend('ah mindless killing');
    51: TypeSend('man something stinks');
    52: TypeSend('so wats evrybody up 2?');
    53: TypeSend('sup dog?');
    54: TypeSend('eek laggy');
    55: TypeSend('man i hate this lag');
    57: TypeSend('laaaaag');
    58: TypeSend('=[ lag');
    59: TypeSend('stupid dial up');
    60: TypeSend('i need broad band');
    61: TypeSend('yaya awesome song');
    62: TypeSend('woot this song totally rox');
    63: TypeSend('ah peace at last... oh maybe not');
    64: TypeSend('grrr i h8 bots now we cant trade gud');
    65: TypeSend('stupid macros will destroy our economy');
    66: TypeSend('bots r so obvious arent them..');
    67: TypeSend('man it rox how theres no macros =]');
    68: TypeSend('Fr33 St00f Pl0x');
    69: TypeSend('Man the new update just roxs.');
    70: TypeSend('Hehe i can say ass and suck now in RuneScape');
    71: TypeSend('Finally Jagex killed wildy. I hate it');
    72: TypeSend('I like Pie.');
    73: TypeSend('My main has been banned wtf!');
    74: TypeSend('I am so sleepy');
    75: TypeSend('Can I throw some cookies?');
    76: TypeSend('Obama for RuneScape President!');
    77: TypeSend('Im on a bad day.');
    78: TypeSend('I believe that i own');
    79: TypeSend('Id rather try to focus in wc');
    80: TypeSend('Imo i dont think so');
    81: TypeSend('Ill go to GE');
    82: TypeSend('I just went to forums to read some mod posts');
    83: TypeSend('hey all noobs');
    end;
    Inc(Talked);
    WriteLn( + (Players[CurrentPlayer].Name) + ' Talked Randomly');

if (InChat('Hi')) or (InChat('Hello')) or (InChat('Hey')) then
    begin
      case Random(4) of
        0:
        begin
        TypeSend(AddMistakes('hello', 30));
        Inc(Talked);
        end;

        1:
        begin
        TypeSend('I guess so..');
        Inc(Talked);
        end;

        3:
        begin
        TypeSend('rofl rickrolled again3fsfs');
        Inc(Talked);
        end;
       
        4:
        begin
        TypeSend(AddMistakes('Good day', 5));
        Inc(Talked);
        end;
       
      end;
    end;

if (InChat('lvl')) or (InChat('woodcutting')) or (InChat('wc')) or (InChat('level')) then
    begin
      case d of
        0:
        begin
        TypeSend(AddMistakes(IntToStr(GetSkillLevel('woodcutting')) + ' yours?', 30));
        Inc(Talked);
        end;
       
        1:
        begin
        TypeSend(IntToStr(GetSkillLevel('woodcutting')));
        Inc(Talked);
        end;
        3:
         begin
         TypeSend(AddMistakes('My wc lvl is ' + IntToStr(GetSkillLevel('woodcutting')), 30));
         Inc(Talked);
         end;
       end;
      for d:= 0 to 3 do
      Inc(Talked);
if (InChat(Players[CurrentPlayer].Name)) then
    begin
    case l of
      0: TypeSend ('yaa?? srry im busy..');
      1: TypeSend ('wat..cant talk too busy :)');
      2: TypeSend ('wat? so bord here..dont feel like tlking');
      3: TypeSend ('ye? too bord to talk sory');
      4: TypeSend ('sup? this geting so boring..');
      5: TypeSend ('ye? wat u want? sory so bordd..');
      6: TypeSend ('wat up..');
      7: TypeSend ('yep??');
      8: TypeSend ('.....what?');
      9: TypeSend ('what you mean my english is very bad');
      10: TypeSend ('id know that but i s x that english bad');
      11: TypeSend(' Who said my name!?');
     end;
      For l:= 0 to 11 do
      Inc(Talked);
  end;
end;
//Add more things...pretty easy :D. Dont forget the Inc(Talked).
end;

Procedure SmallSetupThing;
var I:Integer;
begin
  If Not LoggedIn Then Exit;
    SetRun(true);
    SetAngle(True);
    Wait(100+random(500))
    MakeCompass('S');
    SetGraphics(4, 'current', 'always', 'off', 'low', 'few', 'off', 'few', 'off');
    WLvl:= GetSkillLevel('woodcutting');
    FLvl:= GetSkillLevel('firemaking');
    If GetCombatLevel < 15 Then
      begin
      I := GetApplication.MessageBox('***IN DANGER*** CB IS WAY TOO LOW','WANT TO CONTINUE THE SCRIPT?',4);
      if I = 6 then Writeln('Right dont complain if you get killed. Continuing.');
      if I = 7 then
      begin
        Writeln('Good you stopped. I have few words for you.');
        Wait(6000);
        WriteLn('          _______               _______  _______  _______     _______    _        _______  _______  ______ '+Chr(13)+chr(10));
        WriteLn(' |\     /|(  ___  )|\     /|   (  ___  )(  ____ )(  ____ \   (  ___  )  ( (    /|(  ___  )(  ___  )(  ___ \'+Chr(13)+chr(10));
        WriteLn(' ( \   / )| (   ) || )   ( |   | (   ) || (    )|| (    \/   | (   ) |  |  \  ( || (   ) || (   ) || (   ) )'+Chr(13)+chr(10));
        WriteLn('  \ (_) / | |   | || |   | |   | (___) || (____)|| (__       | (___) |  |   \ | || |   | || |   | || (__/ / '+Chr(13)+chr(10));
        WriteLn('   \   /  | |   | || |   | |   |  ___  ||     __)|  __)      |  ___  |  | (\ \) || |   | || |   | ||  __ ( '+Chr(13)+chr(10));
        WriteLn('    ) (   | |   | || |   | |   | (   ) || (\ (   | (         | (   ) |  | | \   || |   | || |   | || (  \ \'+Chr(13)+chr(10));
        WriteLn('    | |   | (___) || (___) |   | )   ( || ) \ \__| (____/\   | )   ( |  | )  \  || (___) || (___) || )___) ) '+Chr(13)+chr(10));
        WriteLn('    \_/   (_______)(_______)   |/     \||/   \__/(_______/   |/     \|  |/    )_)(_______)(_______)|/ \___/ '+Chr(13)+chr(10));
        WriteLn('Loggin out..Reason-> Lower combat level of 15.');
        NextPlayer(False);
        LoginPLayer;
      end;
    end;
 end;

begin
    {$IFDEF FORM }
    ClearDebug;
    SetupSRL;
    WriteLn('SRLPlayerForm loaded.');
    SRLPlayerForm(True, [], [], ['Banking, Dropping or Burning,'], []);// You dont need to fill them but from armies its is great :>
    WriteLn('Players in SRLPlayerForm: '+Players[CurrentPlayer].Name);
    {$ENDIF}
    wait(2400);
    ClearDebug;
    Disguise('@Colluci Willow Chopper & Burner');
    Welcome;
    ClearDebug;
    WriteLn('Checking Version');
    CheckAndDownload('http://colluciworld.freehostia.com/VersionChecker.txt', 'http://colluciworld.freehostia.com/TheScript.txt', 'Draynor Willow Chopper & Burner 1.0.scar')  ;
    Wait(1000);
    WriteLn('Loading SMART');
    wait(2000);
    World:=SmartWorld;
    SmartSetupEx(World, false, true, false);
    SetTargetDC(SmartGetDC);
  repeat
    wait(100);
  until(SmartGetColor(253, 233)<>1118604);
    wait(1000);
    ActivateClient;
    WriteLn('SMART was loaded succesfully.')
    SetupWoodCutting;
    SRLID := TheSRLID;
    SRLPassword := TheSRLPassword;
    ScriptID := MyScriptID;
    DeclarePlayers;
    LoginPlayer;
    AntiRandoms;
    SmallSetupThing;
    WriteLn('Current WC lvl: '+IntToStr(WLvl));
    WriteLn('Current FM lvl: '+IntToStr(FLvl));
    LoadDTMS;
    Wait(100);
    FindAnAxe;
    FindWhereWeAre;
    wait(1000+random(500));
    repeat
    {while (LoggedIn) do
      begin
      FindWillows;
      MyOwnEntFinder;
      AfterInvFull;
      AntiRandoms;
      Antiban;
      NewLevel;
      AutoTalker;
      end;}

    if not LoggedIn then
    Begin
    NextPlayer(False);
    LoginPlayer;
       If Not (LoggedIn) Or Not (Players[CurrentPlayer].Active) Then
          Players[CurrentPlayer].Active := False;
          If Not LoggedIn Then
          Begin
            Players[CurrentPlayer].Active := False;
            Inc(PlayersSwitch);
            NextPlayer(True);
          end;
       GameTab(4) ;
       If FindDTM(AxeBroken,x,y,MIX1,MIY1,MIX2,MIY2) then
       begin
       WriteLn('Axe is broken :(') ;
       Inc(BrokenAxes);
       BrokeAxe;
       end;
       If not FindDTM(AxeBroken,x,y,MIX1,MIY1,MIX2,MIY2) then
       begin
       GameTab(5);
        If FindDTM(AxeBroken,x,y,MIX1,MIY1,MIX2,MIY2) Then
        begin
         WriteLn('Checking if axe is broken.');
         Mouse(x, y, 0, 0, False);
         wait(100+random(500));
         ChooseOption('Remove');
         BrokeAxe;
       end;
     if LoadsDone >= LoadsPerPlayer then
       begin
        If LoadsDone mod LoadsPerPlayer = 0 Then //Just to be sure all loads are done
        begin
        WriteLn('All Loads done:'+IntToStr(LoadsDone)+' loads. Work is done.');
        WriteLn('If you want to add more loads, just change the LoadsPerPlayers const');
        Inc(PlayersSwitch);
        NextPlayer(True);
        LoginPlayer;
        end;
      if PlayersActive = 0 then
      begin
      NextPlayer(True);
      WriteLn('Switching players, ' + Players[CurrentPlayer].Name +' going to ' + BoolToStr(LoggedIn));
      Inc(PlayersSwitch);
      end;
    end;
   end;
  end;
 until(AllPlayersInactive)
end.

Dunno if this is the proper place to post this but its pretty good for another people learn or take examples for their first script

and btw, what do you think of this unfinished script? I haven't released a script yet but I will soon well I hope

Changed the section so registered users can view this too.