Simba Code:
program P1nkys_PowerChopper_V5;
{$DEFINE SMART}
//$define srl5}
{$i srl\srl.simba}
//$i SRL\SRL\Misc\Stats.simba}
//$loadlib sps}
//$i sps/sps.simba}
{$i SRL/SRL/misc/paintsmart.simba}
{===================================================}
{ P1nky' PowerChopper Since 11/12/07 }
{===================================================}
{
Step 1: Have a Hatchet(axe) either on FIRST SLOT or WIELDED.
Step 2: Surrond your Character around the Trees that you have chosen.
Step 3: Start the script.
Step 4: Watch the script run for a good Minute.
Step 5: Enjoy The Script. Also, Please post PROGGIES keep the Thread Alive <3.
{===================================================}
//\\ Make Sure To Progress Reports on The Thread! //\\
{===================================================}
const
{===================================================}
TakeBreaks = False; // Take Breaks ?(recommended only for PowerChopper)(Less Random Chances)
DropType = 'fast'; // Do not Change.
Loads = 18; // When to Break, so if "50" than every 50 load, Break feature will kick in.
// Note: Have 'TakeBreaks' set to True in order to Sleep(Break).
AntiBan = False; // Perform EXTRA AntiBan ? If True, may take couple more seconds to find Trees.
{===================================================}
OakColor = 3096133; //DO NOT CHANGE UNLESS TROUBLE FINDING OAK
WillowColor = 2374714; //DO NOT CHANGE UNLESS TROUBLE FINDING WILLOW
RegTreeColor = 3690597;//DO NOT CHANGE UNLESS TROUBLE FINDING TREE
{===================================================}
DoYouLoveSRL = True;
SRLStats_Username = '';
SRLStats_Password = '';
{===================================================}
{######## ## ## ## ## ## ## ##
## ## #### ### ## ## ## ## ##
## ## ## #### ## ## ## ####
######## ## ## ## ## ##### ##
## ## ## #### ## ## ##
## ## ## ### ## ## ##
## ###### ## ## ## ## ##}
{===================================================}
var
PowerChopper : TForm;
WhatTree : TComboBox;
procedure DeclarePlayerz;
begin
HowManyPlayers := 2;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Your Runescape username
Players[0].Pass := ''; //Your Runescape password
Players[0].Active := True; //Set to true if you want to use this player. Set to False to disable this player.
Players[0].Strings[0] := 'Willows'; //'Willows' or 'Trees' or 'Oaks'
Players[1].Name := ''; //Your Runescape username
Players[1].Pass := ''; //Your Runescape password
Players[1].Active := True; //Set to true if you want to use this player. Set to False to disable this player.
Players[1].Strings[1] := 'Oak'; //'Willows' or 'Trees' or 'Oaks'
end;
{===================================================}
{ THANK YOU FOR USING P1NKY'S POWERCHOPPER }
{===================================================}
{ Since 2007 }
{===================================================}
{ Do Not Touch Below. }
{===================================================}
var
DTM4, FailFind, e, PLANBB, Burned, DTM3, SPOTCDTM, WCLVL, Loads1, Debugged, sleeper, Breaktime, Break, x, y, TreesChopped, Dropper, level, axe, Chopped, NextBreak, DTMSPOT, DTM1, DTM2: integer;
Chop: TComboBox;
Version: string;
LastestVersion: Boolean;
procedure Grats;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
exit;
if (FindBlackChatMessage('Congratulations')) or (FindBlackChatMessage('you just advance')) or InChat('Congratulations') or InChat('just advance') or InChat('congratulations,') then
begin
Writeln('Gained a levled!!!');
begin
case Random(18) of
0: TypeSend('woot finnally LEVELED!!');
1: TypeSend('muwahah lvled');
2: TypeSend('leveled yay me!');
3: TypeSend('woot got wcing lvl :)');
4: TypeSend('omg.. i didnt even know i just leveld');
5: TypeSend('yay me');
6: TypeSend('w00t grats');
7: TypeSend('Dang!');
8: TypeSend('fireworks@!');
9: TypeSend('yay leveld!');
10: TypeSend('woot didnt notice since lagged lol');
11: Typesend('good i just leveld wc');
12: TypeSend('yay!');
13: TypeSend('Hleveled');
14: TypeSend('.lvld just now guys grats me jk');
15: TypeSend('lol');
16: TypeSend('lol...');
17: TypeSend('fireworkz');
end;
end;
writeln('you HAVE JUST LEVELED WOODCUTTING!');
level := level + 1;
end;
end;
const
ScriptVersion ='5.2';
UseAutoChecker = True;
procedure FindRandoms;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(false);
Grats;
Status('Looking For Randoms');
FindNormalRandoms;
end;
procedure RandomButton;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(false);
Grats;
case Random(3) of
0:
begin
KeyDown(VK_Left);
wait(Random(600) + 500);
KeyUp(VK_Left);
end;
1:
begin
KeyDown(VK_Right);
wait(Random(600) + 500);
KeyUp(VK_Right);
end;
2:
begin
KeyDown(VK_Up);
wait(Random(200) + 500);
KeyUp(VK_Up);
end;
end;
end;
procedure randomcompass;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(false);
Grats;
case Random(6) of
0: makecompass('N');
1: makecompass('S');
2: makecompass('E');
3: makecompass('W');
4: setangle(1);
end;
end;
procedure MyAntiBan;
var
DBanMe: Integer;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(false);
Grats;
Status('Performing P1nkys AntiBan');
DBanMe := Random(12);
case DBanMe of
0: PickUpMouse;
1: GameTab(1 + Random(15));
2: DoEmote(1 + Random(15));
3: RandomRclick;
5: RandomButton;
7: ChooseOption('cancel');
8: MMouse(Random(MSX2), Random(MSY2), 0, 0);
9:
begin
HoverSkill('woodcutting', false);
sleepandmovemouse(200 + Random(100));
gametab(4);
ChooseOption('Cancel');
RandomButton;
MMouse(Random(MSY1), Random(MSX1), 0, 0);
end;
10:
begin
GameTab(1 + Random(13));
wait(1000 + Random(600));
gametab(4);
RandomButton;
ChooseOption('Cancel');
setangle(1);
end;
11:
begin
HoverSkill('random', false);
sleepandmovemouse(200 + Random(100));
RandomButton;
ChooseOption('Cancel');
setangle(1);
end;
end;
end;
procedure ReportScreen(TP: TStringArray; Placement: TPoint; Colour: integer);
var
mx, my, Pic, I, B, H, TPH, Numb: Integer;
TTP: TPointArray;
Canvas: TCanvas;
begin
SmartSetDebug(True);
GetClientDimensions(mx, my);
Pic := BitmapFromString(mx, my, '');
TPH := High(TP);
for I := 0 to TPH do
begin
TTP := LoadTextTPA(TP[i], SmallChars, H);
for B := 0 to High(TTP) do
begin
Numb := ((I + 1) * 13);
FastSetPixel(Pic, TTP[b].x + 1, TTP[b].y + Numb + 1, 8388736);
FastSetPixel(Pic, TTP[b].x, TTP[b].y + Numb, Colour);
end;
end;
Canvas := TCANVAS.Create;
Canvas.Handle := SmartGetDebugDC;
DrawBitmap(Pic, Canvas, Placement.x, Placement.y);
FreeBitmap(Pic);
end;
procedure ReportSmart;
begin
ReportScreen(['P1nkys PowerChopper', '', 'Worked For ' + TimeRunning, '', 'Chopped ' + IntToStr(TreesChopped), '', 'Dropped(by loads) ' + IntToStr(Dropper)], Point(350, 223), 255);
end;
procedure BurnSmartReport;
begin
{ ReportScreen(['P1nkys Chopper & Burner'], Point(5, 310), 255);
ReportScreen (['Worked For ' + TimeRunning],Point(165, 310), 255);
ReportScreen (['Chopped ' + IntToStr(TreesChopped)],Point(320, 310), 255);
ReportScreen (['Burned ' + IntToStr(Burned)],Point(400, 310), 255); }
ReportScreen(['P1nkys Chopper & Burner',
'',
'Worked For ' +TimeRunning,
'',
'Chopped ' +IntToStr(TreesChopped),
'',
'Burned ' + IntToStr(Burned)],
Point(350,223),255);
end;
procedure ActReport(Activity: string);
begin
end;
procedure Report;
var
Answer, WC: Integer;
begin
Grats;
// WC := GetSkillInfo('Woodcutting', true);
Answer := (WCLVL - WC);
cleardebug;
SRLRandomsReport;
ReportSmart;
Writeln('||===========================||');
Writeln('|| P1nkys Draynor ||');
Writeln('||===========================||');
Writeln('|| ' + TheDate(Date_Formal) + ' ||');
Writeln('||===========================||');
Writeln(' Worked For ' + TimeRunning);
Writeln(' Chopped ' + IntToStr(TreesChopped));
Writeln(' Dropped(by loads) ' + IntToStr(Dropper));
Writeln(' Broken Axes ' + IntToStr(Axe));
Writeln(' Leveled ' + IntToStr(Answer));
Writeln(' Sleeped ' + IntToStr(Sleeper));
Writeln(' WoodCutting level ' + IntToStr(WCLVL));
Writeln('||===========================||');
Writeln('||==== By P1nky ====||');
Writeln('||===========================||');
Writeln('||===========================||');
Writeln('||=====DESTROY THE TREES=====||');
Writeln('||===========================||');
begin
Stats_Commit;
Disguise('P1nky PowerChopper ' + TimeRunning);
ActReport('Break in Approx:');
Debugged := Debugged + 1;
if TakeBreaks then
if Debugged > 5 then
begin
Writeln(IntToStr(Loads - Loads1) + ' Loads Left Until Sleep.');
Debugged := 0;
end;
end;
case LowerCase(Players[CurrentPlayer].Strings[1]) of
'Oaks', 'oaks', 'Oak', 'oak': Writeln('Chopping Oaks');
'Willows', 'Willow', 'willows', 'willows': Writeln('Chopping Willows');
'Tree', 'tree', 'Trees', 'trees': Writeln('Chopping Regular Trees');
end;
end;
procedure FireReport;
var
Answer, WC: Integer;
begin
Grats;
cleardebug;
SRLRandomsReport;
BurnSmartReport;
//PrintOnSmart([''],Point(45, 310), 255);
Writeln('||===========================||');
Writeln('|| P1nkys FireChopper ||');
Writeln('||===========================||');
Writeln('|| ' + TheDate(Date_Formal) + ' ||');
Writeln('||===========================||');
Writeln(' Worked For ' + TimeRunning);
Writeln(' Chopped ' + IntToStr(TreesChopped));
Writeln(' Burned ' + IntToStr(Burned) + ' logs ');
Writeln('||===========================||');
Writeln('||===========================||');
Writeln('||===========================||');
begin
Stats_Commit;
end;
end;
procedure GoodNight;
var
l, s, Time: integer;
begin
l := RandomRange(5, 7);
s := l;
Status('Sleeping');
MarkTime(Time);
Sleeper := Sleeper + 1;
repeat
Disguise('Sleeping For ' + IntToStr(l) + ' minutes');
Writeln('Break Time: ' + IntToStr(l) + ' minutes left until Login.');
Wait(1000 * 60 * 1);
l := l - 1;
until (TimeFromMark(Time) > 1000 * 60 * s);
if not (LoggedIn) then
NextPlayer(true);
LoginPlayer;
end;
function FindWillows: Boolean;
var
TreeColors: array [0..3] of integer;
TreeTPA: TPointArray;
RandomOption, Chill, a, I: Integer;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(false);
SetAngle(0);
RandomButton;
Setangle(0);
repeat
// if FindObj(x, y, 'Chop', 2700598, 1) or FindObj(x, y, 'down', 1910310, 1) or FindObj(x, y, 'Willow', 3096126, 20) then
If (FindObjCustom(x,y,['illow','Will','Willow'], [2963770,2174251,1713442], 3)) Then
Report;
FindRandoms;
MMouse(x, y, 0, 0);
if WaitupText('Chop down', 545) then
begin
Mouse(x, y, 0, 0, true);
end;
Chopped := Chopped + 1;
wait(1675 + random(654)) Fflag(0);
writeln('Success Finding Willow');
FindNormalRandoms;
if AntiBan then
begin
MyAntiBan;
RandomButton;
end;
begin
FindRandoms;
Grats;
if Chopped = 5 then
begin
Writeln('Cant find any Willows - checking every angle!');
RandomButton;
RandomCompass;
end;
end;
until (Invfull);
end;
function FindOaks: Boolean;
var
TreeColors: array [0..3] of integer;
TreeTPA: TPointArray;
Chill, a, I: Integer;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(false);
{ KeyDown(VK_Down);
wait(Random(300) + 500);
KeyUp(VK_Down); }
repeat
If (FindObjCustom(x,y,['Oak','ak','Oaks'], [OakColor,1524802,OakColor], 1)) Then
Report;
FindRandoms;
MMouse(x, y, 0, 0);
if WaitupText('Chop down', 545) then
ClickMouse2(true);
Chopped := Chopped + 1;
wait(3477 + random(1001)) Fflag(0);
writeln('Success Finding Oak');
if AntiBan then
begin
MyAntiBan;
RandomButton;
end;
begin
FindRandoms;
Grats;
if Chopped = 5 then
begin
Writeln('Cant find any Oaks - checking every angle!');
RandomButton;
end;
end;
if not FindSymbol(x, y, 'fish') then
begin
end;
until (Invfull);
end;
procedure RegularTreeBan;
var
NoBan: Integer;
begin
FindRandoms;
Grats;
Noban := Random(18);
case Move of
0: MMouse(x, y, (10 + random(350)), (10 + random(200)));
1: MMouse(x, y, (10 + random(400)), (10 + random(600)));
2: MMouse(x, y, (10 + random(550)), (10 + random(400)));
3: MMouse(x, y, (10 + random(500)), (10 + random(400)));
4: MMouse(Random(MSX2), Random(MSY2), 0, 0);
5: RandomRclick;
10: setangle(1)
end;
end;
function FindTrees: Boolean;
var
TreeColors: array [0..3] of integer;
TreeTPA: TPointArray;
Chill, a, I: Integer;
begin
if (not (loggedin)) then
Exit;
KeyDown(VK_Down);
wait(Random(200) + 300);
KeyUp(VK_Down);
repeat
If (FindObjCustom(x,y,['ree','Tre','Tree'], [3622226,3622226,3622226], 3)) Then
Report;
FindRandoms;
MMouse(x, y, 0, 0);
if WaitupText('Chop down', 545) then
Mouse(x, y, 0, 0, true);
Chopped := Chopped + 1;
wait(1500 + random(1001)) Fflag(0);
writeln('Success Finding Regular Tree');
report;
if AntiBan then
begin
RegularTreeBan;
RandomButton;
end;
begin
FindRandoms;
Grats;
if Chopped = 5 then
begin
Writeln('Cant find any Regular Trees - checking every angle!');
RandomButton;
end;
end;
if not FindSymbol(x, y, 'fish') then
begin
end;
until (Invfull);
end;
procedure PinkyBAN;
var
DBanMe: Integer;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(false);
DBanMe := Random(12);
case DBanMe of
0: PickUpMouse;
1: GameTab(1 + Random(33));
2: DoEmote(1 + Random(75));
3: RandomRclick;
5: RandomButton;
7: ChooseOption('cancel');
8: MMouse(Random(MSX2), Random(MSY2), 0, 0);
9:
begin
HoverSkill('woodcutting', false);
sleepandmovemouse(200 + Random(100));
gametab(4);
ChooseOption('Cancel');
RandomButton;
MMouse(Random(MSY1), Random(MSX1), 0, 0);
end;
10:
begin
GameTab(1 + Random(13));
wait(1000 + Random(600));
gametab(4);
RandomButton;
ChooseOption('Cancel');
setangle(2);
end;
11:
begin
HoverSkill('random', false);
sleepandmovemouse(200 + Random(100));
gametab(4);
RandomButton;
ChooseOption('Cancel');
setangle(2);
end;
end;
end;
procedure SmartDrop;
var
logdtm: integer;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(false);
Writeln('using Dtm (smart way) slower though but more accurate');
logdtm := DTMFromString('78DA63CC63626078C880029A536D18FE03694' + '620FE0F048C054035EF18D000231209A463816A9E135093015473' + '87809A3222D45413B60B0046720E26');
gametab(4);
repeat
if finddtm(logdtm, x, y, 550, 203, 731, 464) then
begin
Mouse(x, y, 3, 3, false);
begin
wait(random(400) + 100);
chooseoption('Drop');
wait(1200 + random(1000));
{ case LowerCase(Players[CurrentPlayer].Strings[1]) of
'tree': ReportVars[4] := ReportVars[4] + 28;
'oak': ReportVars[5] := ReportVars[5] + 28;
'willow': ReportVars[6] := ReportVars[6] + 28;
'all': ReportVars[7] := ReportVars[7] + 28; }
//end;
end;
end;
until (not (finddtm(logdtm, x, y, 550, 203, 731, 464)));
freedtm(logdtm);
begin
Dropper := Dropper + 1;
TreesChopped := TreesChopped + 27;
report;
FindRandoms;
Report;
end;
end;
procedure FastDrop;
var
i: Integer;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(false);
Writeln('Using Fast Dropping');
if not (LoggedIn) then
Exit;
GameTab(4);
for i := 2 to 28 do
begin
if ExistsItem(i) then
DropItem(i);
end;
begin
Dropper := Dropper + 1;
Loads1 := Loads1 + 1;
TreesChopped := TreesChopped + 27;
report;
FindRandoms;
Report;
if TakeBreaks then
if Loads1 > Loads then
begin
writeln('Going to Sleep');
Logout;
GoodNight;
Loads1 := 0;
end;
end;
end;
procedure PinkyPowerChopper;
begin
if not (LoggedIn) or not (Players[CurrentPlayer].Active) then
NextPlayer(false);
Case LowerCase(Players[CurrentPlayer].Strings[0]) Of
'Oaks', 'oaks', 'Oak', 'oak': FindOaks;
'Willows', 'Willow', 'willows', 'willows': FindWillows;
'Tree', 'tree', 'Trees', 'trees': FindTrees;
end;
if (InvFull) then
begin
FastDrop;
SetAngle(0);
end;
{ if (invfull) then
begin
case (DropType) of
'Smart': SmartDrop;
'Fast': FastDrop;
end; }
report;
end;
begin
if not DoYouLoveSRL then
begin
writeln('Sorry. Terminating Script. Love SRL or GTFO.');
wait(500);
writeln('Sorry. Terminating Script. Love SRL or GTFO.');
wait(500);
writeln('Sorry. Terminating Script. Love SRL or GTFO.');
wait(500);
writeln('Sorry. Terminating Script. Love SRL or GTFO.');
wait(500);
writeln('Sorry. Terminating Script. Love SRL or GTFO.');
wait(500);
writeln('Sorry. Terminating Script. Love SRL or GTFO.');
wait(500);
writeln('Sorry. Terminating Script. Love SRL or GTFO.');
TerminateScript;
end;
begin
Disguise('P1nky PowerChopper');
ClearDebug;
ClearReport;
Smart_Server := 17;
Smart_Members := false;
Smart_Signed := true;
Smart_SuperDetail := false;
if (SRLStats_Username = '') then
SetupSRLStats(485, 'Anonymous', 'anon1337')
else
SetupSRLStats(485, SRLStats_Username, SRLStats_Password);
end;
SetupSRL;
declareplayerz;
LoginPlayer;
Dropper := 0;
TreesChopped := 0;
WCLVL := GetSkillInfo('Woodcutting', true);
SetAngle(0);
repeat
PinkyPowerChopper;
if (InvFull) then
begin
FastDrop;
end;
until (false);
end.