Code:
program hbryan1991powerchopper;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/WoodCutting.scar}
const
//Tree Type - Tree, Oak, Willow, Maple, or Yew.
TreeType = 'Willow'; //set this for the type of tree your gonna cut
//Tree Colors - You may have to set these
OakColor = 4881568;
TreeColor = 3440752;
WillowColor = 2582616;
MapleColor = 2582616;
YewColor = 2582616;
//Loads To Do
Loadz = 65456;
var
TMark: Integer;
Procedure DeclarePlayers;
Begin
HowManyPlayers:=1; //Don't Change if you want more players just fill in their info and set their active to: True/False
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0; //Player to start on
Players[0].Name :='6#%^*#$*'; //Fill in your username
Players[0].Pass :='#%^#%@&'; //Fill in your password
Players[0].Nick :='$@^$@&#&%'; //2-3 letters of your username
Players[0].Active :=True; //Set true if you want to use this player
Players[0].Booleans[1] := True; //Axe Settings: True=Equiped False=InventoryFirstSlot
Players[0].Skill:= 'woodcutting' //genie skill
NickNameBmp:=CreateBitMapMaskFromText(Players[CurrentPlayer].Nick,UpChars);
End;
var
Ix, Iy, LoadzDone, wclvl, logz: Integer;
//////////////////////////////
Const VersionNum = '1.19'; //
//////////////////////////////
function FindFastRandoms: Boolean; //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;
7: begin
if InBlack then
begin
Result := True;
Players[CurrentPlayer].loc := 'InBlack';
Logout;
Exit;
end;
end;
8: RC;
9: FindLamp(Players[CurrentPlayer].Skill);
10: if FindTalk then
Result := True;
11: ClickToContinue;
end;
wait(1);
end;
end;
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)
Wait(10);
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;
Var
EX, EY : integer;
FX, FY : integer;
Procedure EntFinder;
Begin
Status('Checking For Ent')
Flag;
If (FindObjMultiText2(EX, EY, TreeType,TreeType,TreeType, 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(648,83,5,5);
Wait(15000+Random(5000));
EntsAvoided := EntsAvoided + 1
end;
end;
end;
procedure TheAntiRandoms;
begin
if (not (LoggedIn)) then Exit
FindFastRandoms;
FindNormalRandoms;
Wait(20)
FindTalk;
FTWait(3)
EntFinder;
if (FindFight) then
begin
RunAwayDirection('N');
Wait(4000 + Random(2000));
RunBack;
end;
Wait(20)
FindTalk;
end;
procedure FindRandoms;
begin
FindFastRandoms;
FindNormalRandoms;
TheAntiRandoms;
end;
Procedure AntiBanage;
Begin
if(not(LoggedIn))then
Exit;
case Random(5) of
0: Begin
GameTab(2);
HoverSkill('Woodcutting', false);
GameTab(4);
End;
1: PickUpMouse;
2: GameTab(1 + Random(12));
4: SleepAndMoveMouse(3000+random(2000));
end;
end;
Procedure ProgReport;
Begin
Cleardebug;
wclvl:= Getskilllevel('Woodcutting')
logz := logz;
WriteLn('//////////////////////////////////////////////////')
WriteLn('| hbryan1991 PowerCutter');
WriteLn('| Version: '+VersionNum);
WriteLn('| Loads Dropped: '+IntToStr(LoadzDone)+'.');
WriteLn('| Logs Cut: '+IntToStr(logz)+'.');
Writeln('| Worked for '+ TimeRunning);
WriteLn('//////////////////////////////////////////////////')
SRLRandomsReport;
End;
Procedure drop;
Begin
If(Players[CurrentPlayer].Booleans[1] = True)Then
Begin
Dropall;
LoadzDone := LoadzDone+1;
Logz := Logz+28;
End;
If(Players[CurrentPlayer].Booleans[1] = False)Then
Begin
DropToPosition(2,28);
LoadzDone := LoadzDone+1;
Logz := Logz+28;
End;
ProgReport;
End;
Procedure Tree;
Begin
GameTab (4);
Repeat
If FindObjMultiText2(Ix, Iy, 'Tre', 'ree', 'ee', TreeColor, 5) then
Mouse (Ix, Iy, 0, 0, True);
begin
MarkTime(TMark);
repeat
FindRandoms;
AntiBanage; //Will Search for randoms until the time from the marker 'TMark' is larger then 2500 + Random(500) or the Inventory is Full
EntFinder;
until((TimeFromMark(TMark) >= (2500 + Random(500))) or InvFull);
end;
Until(invcount = 28);
drop;
End;
Procedure OakTree;
Begin
GameTab (4);
Repeat
If FindObjMultiText2(Ix, Iy, 'Oa', 'ak', 'Oak', OakColor, 5) then
Mouse (Ix, Iy, 0, 0, True);
begin
MarkTime(TMark);
repeat
FindRandoms;
AntiBanage; //Will Search for randoms until the time from the marker 'TMark' is larger then 2500 + Random(500) or the Inventory is Full
EntFinder;
until((TimeFromMark(TMark) >= (2500 + Random(500))) or InvFull);
end;
Until(invcount = 28);
drop;
End;
Procedure WillowTree;
Begin
GameTab (4);
Repeat
If FindObjMultiText2(Ix, Iy, 'Wil', 'ill', 'low', WillowColor, 5) then
Mouse (Ix, Iy, 0, 0, True);
begin
MarkTime(TMark);
repeat
FindRandoms;
AntiBanage; //Will Search for randoms until the time from the marker 'TMark' is larger then 2500 + Random(500) or the Inventory is Full
EntFinder;
until((TimeFromMark(TMark) >= (2500 + Random(500))) or InvFull);
end;
Until(invcount = 28);
drop;
End;
Procedure MapleTree;
Begin
GameTab (4);
Repeat
If FindObjMultiText2(Ix, Iy, 'Map', 'apl', 'ple', MapleColor, 5) then
Mouse (Ix, Iy, 0, 0, True);
begin
MarkTime(TMark);
repeat
FindRandoms;
AntiBanage; //Will Search for randoms until the time from the marker 'TMark' is larger then 2500 + Random(500) or the Inventory is Full
EntFinder;
until((TimeFromMark(TMark) >= (2500 + Random(500))) or InvFull);
end;
Until(invcount = 28);
drop;
End;
Procedure YewTree;
Begin
GameTab (4);
Repeat
If FindObjMultiText2(Ix, Iy, 'Ye', 'ew', 'Yew', YewColor, 5) then
Mouse (Ix, Iy, 0, 0, True);
begin
MarkTime(TMark);
repeat
FindRandoms;
AntiBanage; //Will Search for randoms until the time from the marker 'TMark' is larger then 2500 + Random(500) or the Inventory is Full
EntFinder;
until((TimeFromMark(TMark) >= (2500 + Random(500))) or InvFull);
end;
Until(invcount = 28);
drop;
End;
Begin
SetupSRL;
FindWindowBySize(766, 504);
activateclient;
ClearDebug;
ProgReport;
DeclarePlayers;
LoadzDone := 0;
makecompass('N')
highestangle;
If(not(LoggedIn)) then
LoginPlayer;
SetChat('off',3)
Setchat('off',1)
SetChat('off',2)
makecompass('N')
highestangle;
Repeat
If(LoadzDone = Loadz)Then
Begin
NextPlayer(True);
End;
If (TreeType = 'Tree') Then
Begin
Tree;
End;
If(TreeType = 'Oak')Then
Begin
OakTree;
End;
If(TreeType = 'Willow')Then
Begin
WillowTree;
End;
If(TreeType = 'Maple')Then
Begin
MapleTree;
End;
If(TreeType = 'Yew')Then
Begin
YewTree;
End;
until(False);
End.
Thank You