Benny
2013-02-08 12:07:52
How Long have You Played Runescape?
7 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
Sirenia
What is your general programming knowledge?
Learnt Pascal script from SRL
Are you a member of any other communities?
I have an account on the now non botting website RSBuddy but I am not active anymore.
Tell us about yourself…
Please show us one (or multiple) of your scripts.
7 Year(s)
Are you affilated in anyway with Jagex LTD?
No
Were you Referred to SRL?
Sirenia
What is your general programming knowledge?
Learnt Pascal script from SRL
Are you a member of any other communities?
I have an account on the now non botting website RSBuddy but I am not active anymore.
Tell us about yourself…
From: -Benny
Hi I'm Benny, I'm 18 years old. I live in Bermuda but currently go to school in England. I grew up surrounded by the sea and the surf and I have a huge passion for just chilling out on the boat with my friends. As some of you guys may have seen, I'm off to America for college in August! I hope to compete on further international stages with the boost that college swimming will give me. I look forward to getting used to a whole new society and concept of living.
I love to swim and to me, as sad as this may be for some people, I love the feeling of busting my butt in training and getting that feeling of just knowing that you have worked hard. I try to train at least 8 times a week and I look forward to seeing how college swimming takes me to the next level!
I think that this community has given a lot to me and I hope that in some ways I have been able to give back to it as well - although YoHoJo doesn't like me undercutting his business :( I love hanging out around this community and seeing how marvellous the talent is that seems to flourish from such a young age!
Right getting on about the scripts.
You may have seen my teak script around - basically just set it up in front of the teak tree on ape atoll and click play! It will automatically find the tree for you and chop until invent is full. You then have two options - drop all or bank! It supports both and if you've unlocked the bank chest I highly recommend that you do! Just fill out the form!
My next piece that I would like to present to you and has been in the works since before Christmas is the Air Runner! This has taken many hours to get right. It makes use of two alternative paths - that it cycles through as a anti ban so it means you get to the altar and to the bank in different ways but it doesn't affect that speed at all. It finds the rune ess from anywhere within visible sight within the bank! Just make sure you have enough!
I hope you enjoy them and I hope that they are worthy enough for your attention.
Thanks guys.
All the best,
-Benny
Please show us one (or multiple) of your scripts.
[Simba_program AirRunner;
{$DEFINE SMART8}
{$i srl/srl.simba}
{$i sps/sps.simba}
{$IFDEF SMART8}
{$I SRL/SRL/Misc/SmartGraphics.Simba}
{$ENDIF}
// Start the script in Varrock West Bank.
// Make sure you have the Rune ess visible
// in the bank - the script will do the rest and enjoy
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
CurrentPlayer := 0;
NumberOfPlayers(HowManyPlayers);
with Players[0] do
begin
Name := ''; // Username
Pass := ''; // Password
Pin := ''; // Bank pin
Member := True;
Active := True;
end;
end;
var
AirRuneDTM, RuneEssDTM, RuneEssBMP, AirRuneBMP, TimeBegan: integer;
StartingXP, RuneCount, Loads: integer;
WestBankToAltarPath, AltarToWestBankPath, WestBankToAltarAntiBanPath,
AltarToBankAntiBanPath: TPointArray;
procedure LoadStuff;
begin
AirRuneDTM := DTMFromString('mlwAAAHicY2dgYOBhYWD4xszAIACk/wFpJiD9gxkinsnIwBADxNFAHMwI4acAcSQQV5WWMIQEBjJsXbeWYXJvL4OvlxeDvY0Nw4SuLgYmoLm4MCMeDAUAqi4PPg==');
RuneEssDTM := DTMFromString('mVAEAAHicpco9C4JQGAXgc5fm/ksXbrdCuSGipuAuErS59JelIWrQQBRq7KQvDq0eeHg/OGsA+xXgi99uxJEC4UiTJY+2cm/ooYAX9fSmTk2/u/wH+tCTblRTS4108zRFHIZwvgejNQ47iyxJcC6KcZ6iCNaYsXMpS1yrCoFzc39p1EL/+QJVcyCG');
RuneEssBMP := BitmapFromString(20, 17, 'meJyVkMEKgkAURf+mWkiSCGJIIo' +
'ZMapiZiIgI2aL//4IuXBiGGTWFsz1n7hshsjx/gKJ4grJ8gapqQF2' +
'3oGk60LY96bqh79/D8BnHrxBZmt4JI2s6LCTJDTrZFEEhjhPoZC7C' +
'ghmJoit0MhfRZsjIJYygk00FukTVZWH5iiAINX3lALpkeYAsqAP8c' +
'wAm9eUT4Hqer+orT5Cu1Ccj5gDpuq4HWFAjf3X8leO41M2CqbOguk' +
'QrzP2h6lrW0bZPWsHUZUG6uHe3P8Alc7o6gE/zu35DgBS/');
AirRuneBMP := BitmapFromString(15, 14, 'meJx1kNEKgkAQRb9RTERExMzMzM' +
'w0ETFFJCLKl/qwfPVvujAwDBvCfZidObN7736nuSybqmrruvtOM6n' +
'v78Pw4CP0fL3H8UN1camxAvH02g5dd5M8FMcnKrKszPNKjpqmx4rs' +
'RNGR+TQtsMIjeFPs/fPcJ2PgJRyGB/BUJ8mZ+whCWSQcBHvwSgROA' +
'V7Cvr8Dz5a4TxFkatfdeN5WWuIalpTItu3KJ5RfJV75bXpiKbUiy3' +
'KWUkgZhgWZpr2Ugv3DvKatdN0kHvcjguOsFRJ+CP4BvvalvA==');
WestBankToAltarPath := [Point(4589,2910),Point(4581,2912),Point(4575,2922),Point(4575,2929),Point(4567,2933),Point(4546,2940),Point(4530,2943),Point(4517,2939),Point(4505,2945),Point(4500,2956),Point(4491,2963),Point(4480,2973),Point(4463,2976),Point(4443,2983),Point(4417,2985),Point(4406,2998),Point(4391,3008),Point(4374,3021),Point(4357,3035)];
AltarToWestBankPath := [Point(4352,3035),Point(4385,3016),Point(4417,2995),Point(4457,2984),Point(4483,2969),Point(4507,2943),Point(4535,2935),Point(4569,2934),Point(4584,2928),Point(4583,2913),Point(4593,2910)];
WestBankToAltarAntiBanPath := [Point(4566,2899),Point(4578,2911),Point(4576,2930),Point(4552,2939),Point(4521,2942),Point(4503,2942),Point(4492,2958),Point(4471,2969),Point(4459,2982),Point(4423,2987),Point(4393,2982),Point(4357,2986),Point(4359,3026),Point(4352,3038)];
AltarToBankAntiBanPath := [Point(4357,3039),Point(4364,3033),Point(4368,3015),Point(4369,2998),Point(4394,2985),Point(4425,2987),Point(4467,2973),Point(4493,2954),Point(4522,2939),Point(4555,2936),Point(4586,2925),Point(4573,2908),Point(4569,2900)];
end;
function Aircounter: integer;
var
x, y: integer;
begin
If FindBitMapTolerancein(AirRuneBMP, x, y, mix1, miy1, mix2, miy2, 45) or FindDTM(AirRuneDTM, x, y, msx1, msy1, msx2, msy2) then
Result:= GetAmount(x, y);
end;
function WalkToAltar: boolean;
begin
if InvFull and LoggedIn then
begin
SPS_Setup(runescape_surface, ['11_7', '10_7']);
WriteLn('Walking to the altar');
case Random(2) of
0: Result := SPS_WalkPath(WestBankToAltarPath);
1: Result := SPS_WalkPath(WestBankToAltarAntiBanPath);
end;
if(Result) then
writeln('Succesfully walked to the altar');
end;
end;
procedure FreeStuff;
begin
FreeBitmap(AirRuneBMP);
FreeBitmap(RuneEssBMP);
FreeDTM(AirRuneDTM);
FreeDTM(RuneEssDTM);
end;
function FindTPAs(var x, y: integer; Hue, Sat: extended; Color, Tol, Heigth, Width: integer; UpTexts: TStringArray): boolean;
var
CTS, i: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;
begin
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(Hue, Sat);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, Color, msx1, msy1, msx2, msy2, Tol);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, Heigth, Width);
{$IFDEF SMART8}
SMART_DrawDotsMulti(False, ATPA);
{$ENDIF}
for i := 0 to High(ATPA) do
begin
MiddleTPAEx(ATPA[i], x, y);
MMouse(x, y, 15, 15);
Result:= WaitUpTextMulti(Uptexts, 1000);
{$IFDEF SMART8}
SMART_ClearCanvasArea(IntToBox(MSX1, MSY1, MSX2, MSY2));
{$ENDIF}
if Result then
Break;
end;
end;
function openUpBank: boolean;
var
x, y: integer;
begin
if BankScreen then
begin
Result := True;
Exit;
end;
if not BankScreen then
begin
WriteLn('Attempting to open the Bank');
if not LoggedIn then
LoginPlayer;
if FindTPAs(x, y, 0.2, 0.2, 4137770, 8, 40, 20, ['anker', 'Banker']) then
begin
ClickMouse2(mouse_right);
WaitOptionMulti(['Bank Ba', 'ank Bank', 'nk Ba'], 1000);
if WaitFunc(@BankScreen, 250, 2500) then
begin
WriteLn('Bank is open');
Result := True;
end;
end;
end;
end;
procedure doBanking;
var
x, y: integer;
begin
if not BankScreen and LoggedIn then
Exit;
if FindBitmapToleranceIn(AirRuneBMP, x, y, msx1, msy1, msx2, msy2, 60) or FindDTM(AirRuneDTM, x, y, msx1, msy1, msx2, msy2) or FindBitmapToleranceIn(RuneEssBMP, x, y, msx1, msy1, msx2, msy2, 60) or FindDTM(RuneEssDTM, x, y, msx1, msy1, msx2, msy2) then
DepositAll;
WriteLn('Getting supplies');
if FindBitmapToleranceIn(RuneEssBMP, x, y, msx1, msy1, msx2, msy2, 60) or FindDTM(RuneEssDTM, x, y, msx1, msy1, msx2, msy2) then
begin
MMouse(x, y, 7, 7);
if WaitUpTextMulti(['Rune Ess', 'Essence', 'ssence'], 1000) then
begin
ClickMouse2(false);
WaitOptionMulti(['-All', 'All'], 1000);
Inc(Loads);
CloseBank;
end;
end else
begin
WriteLn('Out of Rune Essences!');
TerminateScript;
end;
end;
function FindAltar: Boolean; //Thanks to P1ng for helping!
var
StoneTPA: TPointArray;
ATPA: T2DPointArray;
H, CTS, i: Integer;
TB: TBox;
begin
Status('FindAltar');
FindNormalRandoms;
if not LoggedIn then
LoginPlayer;
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorspeed2Modifiers(0.77, 0.20);
if FindColorsTolerance(StoneTPA, 6910062, MSx1, MSy1, MSx2, MSy2, 11) then
begin
SortTPAFrom(StoneTPA, Point(350, 60));
ATPA := TPAToATPAEx(StoneTPA, 50, 50);
H := Min(4, High(ATPA));
SetColorSpeed2Modifiers(1.12, 0.13);
for i := 0 to H do
begin
TB := GetTPABounds(ATPA[i]);
if (CountColorTolerance(8091257, TB.x1, TB.y1, TB.x2, TB.y2, 3) > 60) then
begin
{$IFDEF SMART8}
SMART_DrawDots(ATPA[i]);
{$ENDIF}
MMouse(MiddleTPA(ATPA[i]).x, MiddleTPA(ATPA[i]).y, RandomRange(-32, 27), RandomRange(-26, 33));
Result := WaitUpText('ltar', 300);
{$IFDEF SMART8}
SMART_ClearCanvasArea(IntToBox(MSX1, MSY1, MSX2, MSY2));
{$ENDIF}
if Result then
begin
ClickMouse2(mouse_Left);
Wait(500 + random(250));
Break;
end;
end;
end;
end;
ColorToleranceSpeed(CTS);
SetColorspeed2Modifiers(0.2, 0.2);
end;
function InsideAltar: boolean;
begin
Result := CountColorTolerance(4944516, mmx1, mmy1, mmx2, mmy2, 11) > 200;
end;
function FindRuins: boolean;
var
x, y: integer;
begin
if Findsymbol(x, y, 'runecrafting') and InvFull then
begin
if FindTPAs(x, y, 0.11, 2.75, 15514232, 9, 40, 60, ['Enter', 'nter', 'ruins', 'uins']) then
begin
ClickMouse2(mouse_left);
Result := WaitFunc(@insideAltar, 500, 5000);
end;
end;
end;
function LeaveAltarPortal: boolean;
var
x, y: Integer;
begin
writeln('leaving altar');
if not LoggedIn then
LoginPlayer;
if not FindTPAs(x, y, 0.00, 0.62, 5082510, 13, 35, 35, ['enter', 'portal', 'ortal', 'nter']) then
begin
MakeCompass('W');
Wait(600 + random(100));
end;
if FindTPAs(x, y, 0.00, 0.49, 8106160, 13, 35, 35, ['enter', 'portal', 'ortal', 'nter']) then
begin
ClickMouse2(mouse_right);
if WaitOptionMulti(['Enter Por', 'nter Por', 'ter Po'], 1000) then
begin
WriteLn('Leaving with the Portal');
Wait(4500 + random(500));
Result := True;
end;
end;
MakeCompass('N');
end;
function WalkToBank: boolean;
begin
if not insideAltar and not InvFull then
begin
SPS_Setup(runescape_surface, ['11_7', '10_7']);
WriteLn('Walking to the Bank');
case Random(2) of
0: Result := SPS_WalkPath(AltarToWestBankPath);
1: Result := SPS_WalkPath(AltarToBankAntiBanPath);
end;
if(Result) then
writeln('succesfully walked to the Bank');
end;
end;
procedure CraftRunes;
var
i: integer;
begin
if insideAltar and InvFull then
begin
MouseBox(632, 78, 642, 82, mouse_left);
repeat
wait(250 + random(100));
FindAltar;
Inc(i);
until(FindAltar or (i > 25));
FindNormalRandoms;
while InvCount > 1 do Wait(200 + random(50));
IncEx(RuneCount, Aircounter);
LeaveAltarPortal;
end;
end;
procedure Proggy;
var
RCExp, RCExpHr, TimeRan, AirsHr, LoadsHr: integer;
begin
TimeRan := (1+((GetSystemTime - TimeBegan) / 1000));
RCExp := (GetXPBarTotal - StartingXP);
RCExpHr := Round((RCExp * 3600) / (TimeRan));
AirsHr := Round((RuneCount * 3600) / (TimeRan));
LoadsHr := Round((Loads * 3600) / (TimeRan));
ClearDebug;
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn('*Benny''s AirCrafter Progress Report');
WriteLn('*Time: ' + TimeRunning);
WriteLn('*We have done ' + IntToStr(Loads) + ' Runs! (' + IntToStr(LoadsHr) + ' per Hour)');
WriteLn('*We have gained ' + IntToStr(RCExp) + ' Runecrafting Experience! (' + IntToStr(RCExpHr) + ' per Hour)');
Writeln('*We have crafted ' +IntToStr(RuneCount) + ' AirRunes!(' + IntToStr(AirsHr) + ' per Hour)');
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;
procedure OnFinish;
begin
Proggy;
FreeStuff;
end;
begin
SetupSRL;
MouseSpeed := RandomRange(12, 16);
DeclarePlayers;
LoginPlayer;
TimeBegan := GetSystemTime;
ToggleXPBar(True);
StartingXP := (GetXPBarTotal);
ClickNorth(SRL_ANGLE_HIGH);
TimeBegan := GetSystemTime;
LoadStuff;
AddOnTerminate('OnFinish');
repeat
if openUpBank then
doBanking;
Proggy;
WalkToAltar;
FindRuins;
CraftRunes;
WalkToBank;
until(AllPlayersInactive);
end.program Teakpro;
{$DEFINE SMART}
{$i SRL/srl.simba}
{$I sps/sps.simba}
//Version: Teak Pro V1.2 :Banking fixed and script cleaned up :D enjoy!
//Thanks Sirenia!
var
TimeBegan, StartingXP, Loads, TeakLogs: integer;
Const
WaitTime = 5000; // Amount of time you want to wait until it tries to chop
// another tree, lower levels want a higher wait time as logs come slower.
Method = 'bank'; // Either 'bank' if you have done Deadliest Catch, or 'drop' if powercutting.
procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; //Username
Players[0].Pass := ''; //Password
Players[0].Active := True; //Leave this alone.
Players[0].Pin := ''; //Put xyour Bank PIN here. Leave blank if you don't have a Bank PIN.
end;
procedure AntiBan;
begin
FindNormalRandoms;
case Random(100) of
0..7:
begin
case Random(5) of
0:
begin
HoverSkill('Woodcutting', false);
wait(1200 + random(100));
end;
1: PickUpMouse;
2: RandomMovement;
3: RandomRClick;
4: ExamineInv;
end;
end;
8..99: Wait(50 + random(50));
end;
end;
procedure WaitChop;
var
Time, Count: integer;
begin
while IsMoving do Wait(50 + random(50));
MarkTime(Time);
Count := InvCount;
repeat
Wait(300 + random(100));
AntiBan;
if InvCount > Count then
begin
MarkTime(Time);
Count := InvCount;
end;
if FindBlackChatMessage('invent') then Exit;
until(TimeFromMark(Time) > WaitTime);
end;
function TeakColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.36, 0.12);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 6844027, MSX1, MSY1, MSX2, MSY2, 12);
if (Length(arP) = 0) then
begin
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 8.53) and (X <= 27.47) and (Y >= 8.83) and (Y <= 28.26) and (Z >= 8.26) and (Z <= 26.57) then
begin
Result := arC[i];
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
end;
procedure ChopTree;
var
x, y, TeakTree: integer;
begin
TeakTree := DTMFromString('mQwAAAHicY2ZgYBCGYhEgzgNiCyBeBcQN5XlgXFWUycAD5MMwIxIGAgDbFgXU');
if InvFull then Exit;
repeat
if FindObjTPA(x, y, TeakColor, 5, 2, 20, 60, 15, ['eak', 'Chop', 'hop']) or FindDTM(TeakTree, x, x, msx1, msy1, msx2, msy2) then
begin
case Random(2) of
0:
begin
Mouse(x, y, 7, 20, false);
WaitOptionMulti(['hop', 'Teak'], 1000);
Wait(500 + random(250));
WaitChop;
end;
1:
begin
Mouse(x, y, 7, 20, true);
Wait(500 + random(250));
WaitChop;
end;
end;
end;
until(InvFull);
FreeDTM(TeakTree);
end;
procedure DropInv;
var
i, SpecialTeakLog, x, y, ms: integer;
begin
SpecialTeakLog := DTMFromString('mbQAAAHicY2VgYJjGxMAwBYhnA/FCIO4E4uOMDAxXgfgKEF8C4stAnBNtC1TNhIL5GDABIxYMBgCkSgg4');
if FindDTM(SpecialTeakLog, x, y, mix1, miy1, mix2, miy2) then
begin
Mouse(x, y, 7, 7, mouse_right);
WaitOption('stroy', 1000);
Wait(1250 + random(250));
if FindColorSpiralTolerance(x, y, 348446, 268, 390, 330, 451, 12) then
Mouse(304, 400, 5, 5, mouse_left) else
Mouse(372, 400, 5, 5, mouse_left);
end;
for i := 2 to 28 do
begin
if ExistsItem(i) then
begin
ms := MouseSpeed;
MouseSpeed := 70;
InvMouse(i, mouse_right);
WaitOptionMulti(['Drop', 'rop', 'Destroy', 'troy'], 1000);
end;
end;
Inc(Loads);
IncEx(TeakLogs, 27);
MouseSpeed := ms;
FreeDTM(SpecialTeakLog);
end;
function BankerColor: Integer;
var
arP: TPointArray;
arC: TIntegerArray;
tmpCTS, i, arL: Integer;
X, Y, Z: Extended;
begin
tmpCTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.04, 0.64);
FindColorsSpiralTolerance(MSCX, MSCY, arP, 2506342, MSX1, MSY1, MSX2, MSY2, 12);
if (Length(arP) = 0) then
begin
Writeln('Failed to find the color, no result.');
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
Exit;
end;
arC := GetColors(arP);
ClearSameIntegers(arC);
arL := High(arC);
for i := 0 to arL do
begin
ColorToXYZ(arC[i], X, Y, Z);
if (X >= 2.72) and (X <= 16.97) and (Y >= 2.31) and (Y <= 13.88) and (Z >= 0.90) and (Z <= 5.77) then
begin
Result := arC[i];
Writeln('AutoColor = ' + IntToStr(arC[i]));
Break;
end;
end;
ColorToleranceSpeed(tmpCTS);
SetColorSpeed2Modifiers(0.2, 0.2);
if (i = arL + 1) then
Writeln('AutoColor failed in finding the color.');
end;
procedure BankLogs;
var
x, y, TeakLog, SpecialTeakLog, BankBox, i: integer;
begin
TeakLog := DTMFromString('mbQAAAHicY2VgYJjGxMAwFYhnAvFCIO4CYnNGBgZXIHYBYicovX5yIlA1EwrmYcAEjFgwGAAA83EGBg==');
SpecialTeakLog := DTMFromString('mbQAAAHicY2VgYJjGxMAwBYhnA/FCIO4E4uOMDAxXgfgKEF8C4stAnBNtC1TNhIL5GDABIxYMBgCkSgg4');
BankBox := DTMFromString('mWAAAAHicY2FgYHgAxM+g+BYQrwbiFUC8DkrXeqgzdAVoM5T6mDDUe6oz8ADFkDEjGgYBAG1nCj0=');
SPS_BlindWalk(Point(2875 + random(4), 5912 + random(4)));
Flag;
Wait(1700 + random(500));
if FindObjTPA(x, y, BankerColor, 5, 2, 60, 30, 15, ['epo', 'Deposit', 'chest', 'Bank']) or FindDTM(BankBox, x, x, msx1, msy1, msx2, msy2) then
begin
Mouse(x, y, 7, 7, mouse_left);
repeat
Wait(250 + random(100));
Inc(i);
until(FindDTM(TeakLog, x, y, msx1, msy1, msx2, msy2) or (FindDTM(SpecialTeakLog, x, y, msx1, msy1, msx2 ,msy2)) or (i > 20));
if FindDTM(TeakLog, x, y, msx1, msy1, msx2, msy2) then
begin
Mouse(x, y, 7, 7, false);
WaitOptionMulti(['All', '-All', 'sit-All'], 1000);
Wait(500 + random(250));
WriteLn('Found logs');
if FindDTM(SpecialTeakLog, x, y, msx1, msy1, msx2 ,msy2) then
begin
Mouse(x, y, 7, 7, false);
WaitOptionMulti(['All', '-All', 'sit-All'], 1000);
Wait(500 + random(250));
WriteLn('Found special logs');
end;
CloseBank;
Inc(Loads);
IncEx(TeakLogs, 27);
end else WriteLn('learn to script noob!');
SPS_BlindWalk(Point(2931 + random(4), 5893 + random(4)));
Flag;
end else
begin
WriteLn('Couldnt find the bank, exiting!');
TerminateScript;
end;
FreeDTM(TeakLog);
FreeDTM(SpecialTeakLog);
FreeDTM(BankBox);
end;
procedure GetRidOfLogs;
begin
if not InvFull then
Exit;
case Lowercase(Method) of
'drop': DropInv;
'bank': BankLogs;
end;
end;
procedure Proggy;
var
WCExp, WCExpHr, TimeRan, TeakLogsHr, LoadsHr: integer;
begin
TimeRan := (1+((GetSystemTime - TimeBegan) / 1000));
WCExp := (GetXPBarTotal - StartingXP);
WCExpHr := Round((WCExp * 3600) / (TimeRan));
//TeakLogs := Round(WCExp / 85);
TeakLogsHr := Round((TeakLogs * 3600) / (TimeRan));
LoadsHr := Round((Loads * 3600) / (TimeRan));
ClearDebug;
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
WriteLn('*Benny''s Teak Powerchopper Progress Report');
WriteLn('*Time: ' + TimeRunning);
WriteLn('*We have chopped ' + IntToStr(Loads) + ' Loads! (' + IntToStr(LoadsHr) + ' per Hour)');
WriteLn('*We have gained ' + IntToStr(WCExp) + ' Woodcutting Experience! (' + IntToStr(WCExpHr) + ' per Hour)');
Writeln('*We have chopped ' +IntToStr(TeakLogs) + ' TeakLogs!(' + IntToStr(TeakLogsHr) + ' per Hour)');
WriteLn('*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;
begin
{$IFDEF SMART}
{$IFDEF SIMBAMAJOR980}
Smart_Server := 72;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
{$ELSE}
SRL_SixHourFix := True;
Smart_FixSpeed := True;
{$ENDIF}
{$ENDIF}
SetUpSRL;
ActivateClient;
DeclarePlayers;
LoginPlayer;
TimeBegan := GetSystemTime;
ToggleXPBar(True);
StartingXP := (GetXPBarTotal);
AddOnTerminate('Proggy');
SPS_Setup(runescape_surface, ['7_14']);
ClickNorth(0);
repeat
ChopTree;
GetRidOfLogs;
Proggy;
until(AllPlayersInactive);
end.
