SRL Archive - Archive

-Benny - SRL Member Application


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…
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.

Sirenia

2013-02-08 12:08:45

Ive been awaiting your application, you are a totaly awesome person and wish you best of luck!

Benny

2013-02-08 12:09:41

From: Sirenia
Ive been awaiting your application, you are a totaly awesome person and wish you best of luck!


Thanks Sirenia, it means a lot that you brought me to this community and helped me along the way with scripting!

:)
Thanks again!

Richard

2013-02-08 12:25:32

I'll be completely honest, I only briefly looked through your scripts, but they seem to have more than just the basics necessary :) Haven't scripted in a very long time, so I probably shouldn't comment on them.

Besides that, you should be allowed in on your attitude alone. You definitely deserve members, yes from me, best of luck!

Benny

2013-02-08 12:27:21

From: Richard
I'll be completely honest, I only briefly looked through your scripts, but they seem to have more than just the basics necessary :) Haven't scripted in a very long time, so I probably shouldn't comment on them.

Besides that, you should be allowed in on your attitude alone. You definitely deserve members, yes from me, best of luck!


Thank you so much Richard. Thank you for your positive comments! <3

Sjoe

2013-02-08 12:27:54

Looks good to me :p voted yes.

Mark

2013-02-08 12:41:45

same here ive been waiting you application and about time too you tick all the boxes for me
and you fit in very nicely here welldone on your progress soo far you have showed your dedication and proven your thirst to learn adn improve a massive yes from me with and goodluck :P

The Killer

2013-02-08 12:42:01

Yes.

DannyRS

2013-02-08 12:43:27

Voted Yes :) GL Benny

Ashaman88

2013-02-08 12:43:43

Definite yes. I'll give more feedback on the scripts in a bit.

Benny

2013-02-08 12:51:02

From: CRU1Z1N
same here ive been waiting you application and about time too you tick all the boxes for me
and you fit in very nicely here welldone on your progress soo far you have showed your dedication and proven your thirst to learn adn improve a massive yes from me with and goodluck :P


Thank you so much for your kind words!
I hope to contribute more! Thank you very much again sir.

From: Ashaman88
Definite yes. I'll give more feedback on the scripts in a bit.

Thank you Ashaman I really appreciate it!

@everyone else I would reply individually but i don't know how to get my multiquote to work on the borrowed computer!

Thanks everyone so much!

Gucci

2013-02-08 13:20:23

Scripts show good use of TPA's, BMP's, DTM's and walking. Overall good job with the script, but mainly you've been around for awhile and you have a great attitude around the forums. Yes from me

Benny

2013-02-08 13:37:35

From: Gucci
Scripts show good use of TPA's, BMP's, DTM's and walking. Overall good job with the script, but mainly you've been around for awhile and you have a great attitude around the forums. Yes from me

Thanks Gucci means alot. Thanks for taking the time to run through my application and give me strong feedback!

Yay

CynicRus

2013-02-08 14:23:44

Yes from me!

Ian

2013-02-08 14:45:15

Yes from me. Active, and script looks good, and you're a good guy ;)

Good use of failsafes for banking too.

Benny

2013-02-08 15:29:51

From: CynicRus
Yes from me!

Thank you sir!
From: BMWxi
Yes from me. Active, and script looks good, and you're a good guy ;)

Good use of failsafes for banking too.

Thanks BMW means alot to hear it from you:)

Jake

2013-02-08 15:38:40

I remember when we were talking about that script a few months ago on msn :P

Good to see that you've submitted, and you have my yes bro

NKN

2013-02-08 16:13:39

I didn't even look at the scripts.
Voted yes.


You deserve it, I've been waiting for you to apply.

Sin

2013-02-08 17:06:12

no. but you probably knew that :rolleyes:

Benny

2013-02-08 17:08:36

From: Jakee
I remember when we were talking about that script a few months ago on msn :P

Good to see that you've submitted, and you have my yes bro

Thanks Jakee means alot! Yeah a lot of work has been thrown in and it's hopefully going to well.
From: NKN
I didn't even look at the scripts.
Voted yes.


You deserve it, I've been waiting for you to apply.

Thanks NKN appreciate it. Means alot.

Thanks for all the support guys.

Benny

2013-02-08 17:11:12

From: Sin
no. but you probably knew that :rolleyes:


Thank you for considering my application :)

E: sorry for double posting.

John

2013-02-08 18:02:36

Scripts are fine :)

You've got my yes without the scripts, But they're are fine nevertheless.

Justin

2013-02-08 18:39:46

Skimmed over the scripts, attitude is fine and you are very active and helpful around the forums.

Yes from me.


Kyle Undefined

2013-02-08 20:34:07

Tard the cat says…


Flight

2013-02-08 21:00:53

I second what Justin says; very active, you're definitely a community player and you're an all-around nice guy. I enjoy reading your comments on the forums, and I know whatever you post it's something positive and/or helpful. Big pointers when it comes to me.

The scripts a nice indeed. I like that you're becoming comfortable with TPA and such and I the failsafes show you're attention to details that would effect the stability of a script. Nice job.

If I may make just a couple suggestions. In a few of your procedures you use loops with failsafes to insure they aren't infinite, but there are easier ways to handle these loops. For example in your Air Runner, inside the CraftRunes procedure you have this:


repeat
wait(250 + random(100));
FindAltar;
Inc(i);
until(FindAltar or (i > 25));

I noticed in multiple loops you use this set up, which is fine it will still work for sure, but like I said before there are indeed easier ways to handle this. Try this instead:


for i:=1 to 25 do //Run this loop 25 times
begin
wait(250 + random(100));
if FindAltar then
break;
end;

AFAIK there's 4 ways to do loops; Repeat..Until, for…to.., While…, GoTo… All can be used, but I believe the "For..To.." loop is the safest to use, as, naturally, you can set a limit to it: for (integer):= 1 to (max # of loops) do…

Oh yeah, I see you've used WaitFunc as well. That can also be used as a loop, but quite limited as you can tell to just a single function, but at least it will break out after an amount of time.


[XoL]

2013-02-08 23:03:02

Not even looking at script, based on attitude and dedication to the forums alone (YES)

Hobbit

2013-02-08 23:10:18

Welcome :)