SRL Archive - Archive

Caotom - SRL Member Application


Caotom

2012-02-17 05:18:15

How Long have You Played Runescape?
6 Year(s)


Are you affilated in anyway with Jagex LTD?
No

Were you Referred to SRL?
N/a


What is your general programming knowledge?
No other programming languages.


Are you a member of any other communities?
Unfortunately I have not been active in any other related communities for quite some time.


Tell us about yourself…
From: Caotom
My name is Robert, I am from Sydney Australia and my hobbies include scripting, gaming (games such as SWTOR, WoW at one point, rs, sc2, skyrim, etc.), cricket, body boarding, chilling with mates.
I am currently at school in year 11.
I am looking to help support this community and I have really been enjoying learning the ins and outs of scripting. I have decided to apply as I believe I would make a valuable member to the SRL community (not that I wont be if I get turned down) and due to the fact that the scripts I have been working on are not suitable for public section posting.



Please show us one (or multiple) of your scripts.
program CaotomsSummoningRunner;


{$DEFINE SMART}
{$i srl/srl.simba}
{$DEFINE SRL5}
{$i SPS/sps.simba}


{ Instructions
1. Make sure that your secondary component for your desired pouch
is in the VERY FIRST slot of you bank (top left).
2. Make sure that the infuse pouch screen is set to FILTERED.
3. Make sure that:
- Your first item in you inv is your house teletabs.
- Your second item is your falador teletabs.
- Your third item is your charms.
- Your fourth item is your pouches.
- Your fifth item is you shards.

}


const
LoadsToDo = 0; //Set the amount of loads to do (one load is 23 pouches)
Server = 56;
SRLStats_User = ''; // Your SRL Stats ID (If you dont have one then just leave it as it is)
SRLStats_Password = ''; // Your SRL Stats Password (If you dont have one then just leave it as it is)
UseDTMWalk = 'Yes'; //No for RadialWalk or Yes for DTM walking


var
x, y, PouchesMade, LoadsDone, FirstWalk, SecondWalk,
AtObelisk, InHouse, Stage, AtBank, WalkPath: Integer;
AFound : Extended;
Walk: Array [0..10] of Integer;



Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := ''; //Username Here
Pass := ''; //Password Here
Pin := ''; //Bank Pin Here
BoxRewards := ['XP','xp','lamp']; //Choose Box rewards (Recommend Defult)
Active := True;
end;
end;

///////////////////SETUP END HERE\\\\\\\\\\\\\\\\\\\\\\\\


procedure DeclareDTMs;
begin
FirstWalk := DTMFromString('mggAAAHicY2NgYOhkYmCoB+ISIJ4NxMlAPBmIdYByoUCsDcTKQCwJxG5A/PnNW4b0tHSGp28+g/G+o6cZNu7ay8APlMOGGXFgCAAAkRoSrA==');
SecondWalk := DTMFromString('mlwAAAHicY2dgYChhYmCYC8SeQOwFxFOAOBGIW4BYFShvA8R2QCwLxDJA7A7EbkD89M1nhn1HT4NxQGg4GIPEQJgfKI8LM+LBUAAA45IT6A==');

end;


procedure FreeDTMs;
begin
FreeDTM(FirstWalk);
FreeDtm(SecondWalk);
end;


Procedure Antiban; //Mostly Thanks to YoHoJo
begin
if(not(LoggedIn))then
Exit;
FindNormalRandoms;
Case Random(500) Of
0:
begin
Writeln('Antiban');
GameTab(tab_Stats) HoverSkill('Summoning', False);
Wait(400 + Random(450));
GameTab(tab_Inv);
end;
1:
begin
Writeln('Antiban');
GameTab(tab_Inv);
ExamineInv;
end;
2:
begin
Writeln('Antiban');
SleepAndMoveMouse(3500 + Random(600));
end;
3:
begin
Writeln('Antiban');
GameTab(Tab_Stats);
Wait(3000 + Random(1500));
GameTab(tab_Inv);
end;
4:
begin
Writeln('Antiban');
HoverSkill('random', False);
Wait(1000 + Random(500));
GameTab(tab_Inv);
end;
5:
begin
Writeln('Antiban');
PickUpMouse;
end;
6:
begin
Writeln('Antiban');
BoredHuman;
end;
end;
end;



procedure SetDTM;
begin
Walk[0] := DTMFromString('mggAAAHicY2NgYChkYmCIBWIXIJ4JxJOAuAGIO4FyUUAcCcQRQBwIxIZAHBLkyxDi78aQlxHDEO5rDuZ7Oykw8APlsGFGHBgCAI5HCs8=');
Walk[1] := DTMFromString('mlwAAAHicY2dgYKhhYmBIAWJnIJ4AxIuAOBWII4G4FSifD8ShUFwKxDZQdkiQL0NClD9DXXkWg7edAkNCpCZDZIgXQ1pCKAM/UB4XZsSDoQAA/78NNQ==');
Walk[2] := DTMFromString('mggAAAHicY2NgYChlYmCIAOJEIJ4DxBOA2BOIe4ByVUDsB8QhQBwIxAFAHB7qzxAUrMoQE+7DkBqnw5CcoM0Qm6rAwA+Uw4YZcWAIAACS2Qri');
Walk[3] := DTMFromString('mbQAAAHicY2VgYJjNxMAwCYgjgLgUiOOAOB8o7gbEqUDcAcQuQBwe6s+QHKzNEBOqwdAzaTZDVIAlAz9QHB0zYsFgAACxaAnv');
Walk[4] := DTMFromString('mggAAAHicY2NgYFjDxMAwFYjnAXElECcAcSkQxwHlSoDYHoi1gdgPiFuA2MXVhaF94jwwjgvTYwgOCWTITjRm4AfKYcOMODAEAAAn4gzA');
Walk[5] := DTMFromString('mlwAAAHicY2dgYNjExMCwGYhrgLgfiNuAeBYQZwGxJVA+BogdgdgUiCuAuB6IpYA4IMSLoWXidDBOStBiSMvUAbPzUhUZ+IHyuDAjHgwFANFrD2k=');
Walk[6] := DTMFromString('mggAAAHicY2NgYJjPxMCwHoi3A7E3ECcCcRMQ6wDlHIE4AYj1gdgCiCWBODzUjyE0SIWhZ9IsMM5M02WIi9Bg4AfKYcOMODAEAADiagwC');
Walk[7] := DTMFromString('mggAAAHicY2NgYJjDxMCwDop9gDgPiIOBWAcoZwfECUDsBMRNQBwOxEFBgQwB/uoM7f1zwTgrTpUhJdmAgR8ohw0z4sAQAAD9ewxi');
Walk[8] := DTMFromString('mlwAAAHicY2dgYOhlYmDoB+IwIHYG4mYgngrEWUAsBpQ3BmIVINYA4iwg9gRidSA+cOAAQ7C/N0NUoBpDarQ2Q6CPEoOPkwaDj6sGAz9QHhdmxIOhAACpqQxD');
Walk[9] := DTMFromString('mbQAAAHicY2VgYLjPyMDQCMQ1QHwdiN8A8VeguAmQPgWkLwCxFpA9e9YUhncvn4Cxu7M8g7uDPAM/UA4dM2LBYAAAQ/UPdw==');
Walk[10] := DTMFromString('mggAAAHicY2NgYJjJyMDADcQRQLwfiM2BeDsQTwLKJQOxFZD9C0izAWlHIO3lpsDgYGnIkBTsxPD90xuGYG9VBmsjdQZ+oBw2zIgDQwAA3NwMBQ==');
end;


procedure FrDTM;
begin
FreeDTM(Walk[0]);
FreeDTM(Walk[1]);
FreeDTM(Walk[2]);
FreeDTM(Walk[3]);
FreeDTM(Walk[4]);
FreeDTM(Walk[5]);
FreeDTM(Walk[6]);
FreeDTM(Walk[7]);
FreeDTM(Walk[8]);
FreeDTM(Walk[9]);
FreeDTM(Walk[10]);
end;


procedure WalkThePath(WalkPath: Integer);
begin
if not LoggedIn then Exit;
FindNormalRandoms;
case WalkPath of

0:
if FindDTMRotated(Walk[0], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Wait(RandomRange(100,200));
end;

1:
if FindDTMRotated(Walk[1], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Wait(RandomRange(100,200));
end;

2:
if FindDTMRotated(Walk[2], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Wait(RandomRange(100,200));
end;

3:
if FindDTMRotated(Walk[3], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Wait(RandomRange(100,200));
end;

4:
if FindDTMRotated(Walk[4], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Wait(RandomRange(100,200));
end;

5:
if FindDTMRotated(Walk[5], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Wait(RandomRange(800,1200));
Mouse(x, y, 3, 3, True);
FFlag(6);
Wait(RandomRange(100,200));
end;

6:
if FindDTMRotated(Walk[6], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Wait(RandomRange(100,200));
end;

7:
if FindDTMRotated(Walk[7], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Wait(RandomRange(100,200));
end;

8:
if FindDTMRotated(Walk[8], x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Wait(RandomRange(100,200));
end;

9:
if FindDTMRotated(Walk[9], x, y, MSX1, MSY1, MSX2, MSY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Wait(RandomRange(100,200));
end;

10:
if FindDTMRotated(Walk[10], x, y, MSX1, MSY1, MSX2, MSY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Wait(RandomRange(100,200));
end;

end;
end;


procedure WalkToObelisk;
var
i: Integer;

begin
if not LoggedIn then Exit;
FindNormalRandoms;
for i := 0 to 10 do
begin
WalkThePath(i);
end;
end;



procedure WalkThePathRad(WalkPathRad: Integer);
begin
case WalkPath of
1:
RadialWalk(8290949, 270, 180, 60, -1, -1);
2:
RadialWalk(8290949, 270, 180, 60, -1, -1);

3:
RadialWalk(8290692, 270, 180, 60, -1, -1);

4:
RadialWalk(8290692, 270, 180, 60, -1, -1);

5:
RadialWalk(8290949, 90, 180, 60, -1, -1);

6:
RadialWalk(8290949, 90, 180, 60, -1, -1);

7:
RadialWalk(7434869, 0, 180, 60, -1, -1);

8:
RadialWalk(8554121, 0, 90, 60, -1, -1);

9:
RadialWalk(8751757, 0, 90, 60, -1, -1);

10:
if FindDTMRotated(Walk[9], x, y, MSX1, MSY1, MSX2, MSY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Wait(RandomRange(100,200));
end;

11:
if FindDTMRotated(Walk[10], x, y, MSX1, MSY1, MSX2, MSY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Wait(RandomRange(100,200));
end;

end;
end;


procedure WalkToObeliskRad;
var
i: Integer;

begin
if not LoggedIn then Exit;
for i := 1 to 11 do
begin
WalkThePathRad(i);
end;
end;


procedure WalkToBank;
begin
if not LoggedIn then Exit;
FindNormalRandoms;
if FindDTMRotated(FirstWalk, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Wait(RandomRange(100,200));
end;
if FindDTMRotated(SecondWalk, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Mouse(x, y, 3, 3, True);
FFlag(6);
Wait(RandomRange(100,200));
end;
Wait(600+random(300));
end;


procedure TeleportBank;

begin
if not LoggedIn then Exit;
FindNormalRandoms;
GameTab(tab_Equip);
if WearingItem(11) then
begin
MouseEquippedItem('ring', 0);
WaitOption('Teleport', 400);
Wait(RandomRange(7000,8500));
end else
begin
Writeln('Not Wearing Ring');
Logout;
TerminateScript;
end;
end;


procedure TeleportHouse;
begin
if not LoggedIn then Exit;
FindNormalRandoms;
MouseItem(1, 1);
Wait(7000+random(1000));
end;

function NearBank: Boolean;
begin
AtBank := DTMFromString('mggAAAHicY2NgYChnYmCoBuJeIM4A4iogbgBiX6CcIxBHALEtEFsAsR4QP/nBwLBx116G9LR0hsVr1jF8fvOW4embzwz8QDlsmBEHhgAAP88Rog==')
if FindDTMRotated(AtBank, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Result := True;
end else
Result := False;
end;


function AtSummoning: Boolean;
begin
AtObelisk := DTMFromString('mggAAAHicY2NgYJjMyMDQAMQ1QBwDxFVAXADEm4FyuUDMCmRPA9KXgLgfiDMytBkC/RUZ/H0VGPr6mhjS07QYUpI0GPiBctgwIw4MAQAMUwxa');
if FindDTMRotated(AtObelisk, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Result := True;
end else
Result := False;
end;

function AtHouse: Boolean;
begin
InHouse := DTMFromString('mbQAAAHicY2VgYFjFxMCwEIgbgTgWiOOB2AcobgHEWkCcAMSOQMygEc8QEuTL4O2kwBDi78ZQkBXHwA8URseMWDAYAABZVgh/');
if FindDTMRotated(InHouse, x, y, MMX1, MMY1, MMX2, MMY2, -Pi/4, Pi/4, Pi/60, aFound) then
begin
Result := True;
end else
Result := False;
end;


procedure UsePortal;

var
T, f: Integer;

begin
if not LoggedIn then Exit;
FindNormalRandoms;
Wait(RandomRange(200,400));
MarkTime(T);
repeat
FindNormalRandoms;
Wait(1);
until (FindColorSpiralTolerance(x, y, 8527710, MSX1, MSY1, MSX2, MSY2, 15) = True) or (TimeFromMark(T) >= 13000)
repeat
if FindColorSpiralTolerance(x, y, 8527710, MSX1, MSY1, MSX2, MSY2, 15) then
begin
MMouse(x, y, 0, 0);
if IsUpText('Enter') then
begin
Mouse(x, y, 0, 0, false);
WaitOption('Enter', 500);
Wait(200+random(200));
Exit;
end else
Writeln('Failed To Find Portal');
F := F + 1;
Wait(100+random(100));
end else
Writeln('Failed To Find Portal');
F := F + 1;
Wait(100+random(100));
until (F >= 50)
Writeln('Failed To Find Portal 50 times');
Logout;
TerminateScript;
end;


Function GetObelisk:Boolean;

var
tries, success: Integer;

begin
if not LoggedIn then Exit;
FindNormalRandoms;
Tries := 0;
Success := 0;
repeat
Wait(200+random(50));
if FindObjTPA(x, y, 5856605, 15, 5, 30, 40, 400, ['Infuse-Pouch', 'nfuse', 'se-po']) then
begin
Wait(100+random(100));
GetMousePos(x, y);
Mouse(x, y, 3, 3, True);
Wait(200+random(50));
Success := 1;
Result := True;
Writeln('Found Obelisk');
Exit;
end else
Tries := Tries + 1;
Until (Tries = 50)
if Tries = 50 then
Result := False
end;


procedure InfusePouch;

var
tries, success: Integer;

begin
Tries := 0;
Success := 0;
Repeat
if FindObjTPA(x, y, 8409401, 25, 5, 10, 22, 60, ['fuse']) then
begin
MMouse(x, y, 3, 3);
GetMousePos(x, y)
Mouse(x, y, 0, 0, false);
WaitOption('Infuse', 500);
Success := Success + 1;
Writeln('Success! Infused Pouches');
Exit;
end else
Tries := Tries + 1;
Until (Tries = 100)
if (Tries = 100) then
begin
Writeln('Failed to Infuse 100 times');
Logout;
TerminateScript;
end;
end;

procedure OpenTheBank;

var
T, A: Integer;

begin
MarkTime(A);
repeat
Wait(200+random(50));
if FindObjTPA(x, y, 6596545, 15, 5, 15, 10, 30, ['Talk', 'alk', 'lk-to']) then
begin
Wait(100+random(100));
GetMousePos(x, y);
Mouse(x, y, 0, 0, True);
end;
MarkTime(t);
repeat
Wait(500);
if BankScreen then Exit;
ClickToContinue; //This part is partially credited to GGZZ
until((ClickToContinue = False) and FindNPCChatText('account', ClickLeft) or BankScreen) or (TimeFromMark(T) > 10000);
Wait(500);
until BankScreen or (TimeFromMark(A) > 10000);
end;


function HandleBank: Boolean;
begin
Writeln('Trying to open bank');
OpenTheBank;
if BankScreen then
begin
Deposit(5, 28, True);
Wait(100+random(100));
Withdraw(0, 0, 1);
Wait(300+random(200));
CloseBank;
end;
if InvFull then
begin
Result := True;
end else
Result := False;
end;


Procedure Proggy;
begin
ClearDebug;
Writeln('|-----------------------------------------------------|');
Writeln('|You have been Summoning for a total of ' + TimeRunning + '|');
Writeln('| You have managed to create ' + IntToStr(PouchesMade) + ' pouche(s)|');
Writeln('| Thankyou for using Caotoms Summoning Trainer :) |');
Writeln('|-----------------------------------------------------|');
SRLRandomsReport;
Stats_Commit;
end;


procedure Mainloop;

var
T: Integer;

begin
if not LoggedIn then Exit;
FindNormalRandoms;
if not(ExistsItem(1)) or not(ExistsItem(4)) then
begin
Writeln('Invalid Item Setup');
Logout;
TerminateScript;
end;
case Stage of

0:
begin
FindNormalRandoms;
if InvFull = True then
begin
Stage := 2;
end else
Stage := 1;
end;

1:
begin
FindNormalRandoms;
Antiban;
Writeln('Getting Items');
if not NearBank then
begin
TeleportBank;
Wait(RandomRange(200,500));
end;
if Nearbank then
begin
WalkToBank;
HandleBank;
end;
Stage := 0
end;

2:
begin
FindNormalRandoms;
Antiban;
Writeln('Teleporting to house');
if not AtHouse then
begin
TeleportHouse;
UsePortal;
MarkTime(T);
repeat
Wait(1);
until(AtHouse) or (TimeFromMark(T) > 10000)
if AtHouse then
begin
Stage := 3;
end else
Stage := 0
end else
Stage := 3
end;

3:
begin
FindNormalRandoms;
Antiban;
Writeln('Walking to Altar');
if not AtHouse then Stage := 0;
if AtHouse then
begin
if UseDTMWalk = 'Yes' then
begin
WalkToObelisk;
end else
WalkToObeliskRad;
if AtSummoning then Stage := 4;
Stage := 0
end else
Stage := 0
end;

4:
begin
FindNormalRandoms;
Antiban;
Writeln('Infusing Pouches');
if GetObelisk then
begin
InfusePouch;
Wait(RandomRange(200,500));
TeleportBank;
MarkTime(T);
repeat
Wait(1);
FindNormalRandoms;
until (NearBank) or (TimeFromMark(T) > 10000)
if TimeFromMark(T) > 10000 then
begin
Writeln('Failed To Get back to bank');
Logout;
TerminateScript;
end else
Stage := 5
end else
Stage := 0
end;

5:
begin
FindNormalRandoms;
Antiban;
Writeln('Depositing Pouches');
WalkToBank;
Wait(RandomRange(200,400));
HandleBank;
LoadsDone := LoadsDone + 1;
PouchesMade := PouchesMade + 24;
Proggy;
if LoadsDone >= LoadsToDo then
begin
Writeln('Finished All Loads');
FrDTM;
Logout;
TerminateScript;
end;
Stage := 0
end;
end;
end;





begin
Smart_Server := SERVER;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;

SetupSRL;
ClearDebug;
DeclarePlayers;
SetupSRLStats(630, SRLStats_User, SRLStats_Password);
PouchesMade := 0;
LoadsDone := 0;

DeclareDTMs;
SetDTM;
Repeat
if not LoggedIn then
begin
LoginPlayer;
end else
MakeCompass('n');
SetAngle(0);
MainLoop;
Until(AllPlayersInactive)
FrDTM;
end.

The first script is a summoning trainer that uses the old taverly house method, I was working on this for a while and when they changed it and released a bank, I decided not to scrap the script. I am not releasing it as it is a sub-optimal training script and thus would not be used very much so I most likely would not keep it up to date for long. Some of the walking can fail (it simply tele's back to the house/dung-bank and starts the walk again) as I ran out of charms testing it and I was also getting a strange bug that caused the minimap to get a green tinge occasionally that totally threw out all walking. Other than that it should work fine.

A proggy of it:
|—————————————————————-|
|You have been Summoning for a total of 39 Minutes and 52 Seconds|
| You have managed to create 336 pouche(s) |
| Thankyou for using Caotoms Summoning Trainer :) |
|—————————————————————-|




The second script is an Armoured Zombie Killer that I originally created for personal use. I renews prayer, drinks super potions and heals with guthans. I am not releasing this on the public forums as the spot would easily become over-crowded. I would be happy to put this up on the member's section should I get accepted and if there is no other armoured zombie trainer that uses a similar, low req method.

program CaotomsArmouredZombieGuthener;

{$define SMART}
{$i srl/srl.simba}
{$i sps/sps.simba}
{$DEFINE SRL5}


//// YOU MUST BE STANDING INSIDE THE TUNNEL OR IN FRONT OF THE TRAPDOOR \\\\
//// YOU MUST HAVE YOUR ARMOR EQUIPPED, GUTHANS IN THE FIRST 4 SLOTS OF INV \\\\
//// AND THE FIFTH SLOT MUST BE EMPTY IF YOU ARE USING A 1 Hander \\\\


const
AttPot = 'Yes'; //Yes if using super att pot
StrPot = 'Yes'; //Yes if using super str pot
DefPot = 'Yes'; //Yes if using super def pot
TimeUntilRefill = 10; //Time between using potions (in mins)
PrayerRefill = 2; //Prayer points to refill at
Use2h = 'No'; //No if using a one hander and shield
HPToHeal = 900; //HP to heal back to with guthans
HealAt = 500; //HP to start healing at with guthans
RunAt = 120; //HP to run away and log
TimeToFight = 180; //How long you want to train for (in mins)



var
x, y, Att, Str, Def, Helm, Chest, Spear, Legs, Total: Integer;
StartExp: Int64;


procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := ''; //Username Here
Pass := ''; //Password Here
Pin := ''; //Bank Pin Here
BoxRewards := ['XP','xp','lamp']; //Choose Box rewards (Recommend Defult)
Active := True;
end;
end;


Procedure Antiban; //Mostly Thanks to YoHoJo
begin
if(not(LoggedIn))then
Exit;
FindNormalRandoms;
Case Random(500) Of
0:
begin
Writeln('Antiban');
GameTab(tab_Stats) HoverSkill('Hitpoints', False);
Wait(400 + Random(450));
GameTab(tab_Inv);
end;
1:
begin
Writeln('Antiban');
GameTab(tab_Inv);
ExamineInv;
end;
2:
begin
Writeln('Antiban');
SleepAndMoveMouse(3500 + Random(600));
end;
3:
begin
Writeln('Antiban');
GameTab(Tab_Stats);
Wait(3000 + Random(1500));
GameTab(tab_Inv);
end;
4:
begin
Writeln('Antiban');
HoverSkill('random', False);
Wait(1000 + Random(500));
GameTab(tab_Inv);
end;
5:
begin
Writeln('Antiban');
PickUpMouse;
end;
6:
begin
Writeln('Antiban');
BoredHuman;
end;
end;
end;


procedure AttPotion;
begin
if FindColorSpiralTolerance(x, y, 11877176, MIX1, MIY1, MIX2, MIY2, 15) then
begin
Mouse(x, y, 2, 2, True);
MarkTime(Att);
end else
Writeln('Could Not Find Super Attack Potion');
end;


procedure StrPotion;
begin
if FindColorSpiralTolerance(x, y, 11645626, MIX1, MIY1, MIX2, MIY2, 15) then
begin
Mouse(x, y, 2, 2, True);
MarkTime(Str);
end else
Writeln('Could Not Find Super Strength Potion');
end;


procedure DefPotion;
begin
if FindColorSpiralTolerance(x, y, 3707568, MIX1, MIY1, MIX2, MIY2, 15) then
begin
Mouse(x, y, 2, 2, True);
MarkTime(Def);
end else
Writeln('Could Not Find Super Defence Potion');
end;


procedure PotUp;
begin
if not LoggedIn then Exit;
if (TimeFromMark(Att) > TimeUntilRefill * 60000) or
(TimeFromMark(Str) > TimeUntilRefill * 60000) or
(TimeFromMark(Def) > TimeUntilRefill * 60000) then
begin
if AttPot = 'Yes' then AttPotion;
Wait(RandomRange(500,600));
if StrPot = 'Yes' then StrPotion;
Wait(RandomRange(500,600));
if DefPot = 'Yes' then DefPotion;
Wait(RandomRange(500,600));
end;
end;


function PrayerPoints: Integer;

var
Colour: String;

begin
Result := GetMMLevels('prayer', Colour);
end;


procedure DownTrapDoor;

var
Tries: Integer;

begin
repeat
Wait(200+random(50));
if FindObjTPA(x, y, 6184547, 15, 5, 30, 40, 400, ['Climb', 'limb', 'Trap', 'rapd']) then
begin
Wait(RandomRange(100,200));
ClickMouse2(1);
Wait(RandomRange(200,250));
Exit;
end else
Tries := Tries + 1;
Until (Tries = 7)
if Tries >= 50 then
Writeln('Could Not Find Trapdoor');
end;


procedure WalkTowardsLadder;
begin
Mouse(625, 40, 20, 20, True);
end;


procedure ClimbLadder;

var
Tries: Integer;

begin
repeat
Wait(200+random(50));
WalkTowardsLadder;
FFlag(6);
Wait(RandomRange(200,400));
if FindObjCustom(x, y, ['adder', 'ladder'], [2641242, 2575192, 2377041], 20) then
begin
Wait(RandomRange(100,200));
ClickMouse2(1);
Wait(RandomRange(200,250));
Exit;
end else
Tries := Tries + 1;
Until (Tries = 50)
if Tries >= 50 then
Writeln('Could Not Find Ladder');
end;


procedure UseAltar;

var
Tries: Integer;

begin
repeat
Wait(200+random(50));
if FindObjTPA(x, y, 8753306, 15, 5, 20, 15, 100, ['Pray', 'ray', 'ay-at', 'Chaos', 'haos']) then
begin
Wait(RandomRange(100,200));
ClickMouse2(1);
Wait(RandomRange(200,250));
Exit;
end else
Tries := Tries + 1;
Until (Tries = 50)
if Tries >= 50 then
Writeln('Could Not Find Altar');
end;


procedure ClickPray;
begin
MMouse(720, 70, 10, 10);
Wait(RandomRange(100,200));
ClickMouse2(1);
Wait(RandomRange(200,250));
end;


procedure TurnOnPrayer;
begin
if not LoggedIn then Exit;
if FindColorSpiralTolerance(x, y, 9061213, 712, 57, 730, 77, 15) then
begin
ClickPray;
end;
end;


procedure RefillPrayer;
begin
if not LoggedIn then Exit;
if (PrayerPoints <= PrayerRefill) then
begin
ClimbLadder;
Wait(RandomRange(1000,1200));
UseAltar;
Wait(RandomRange(1000,1400));
DownTrapDoor;
Wait(RandomRange(600,1000));
end;
end;


function HitPoints: Integer;

var
Colour: String;

begin
Result := GetMMLevels('health', Colour);
end;


procedure SetDTM;
begin
Helm := DTMFromString('mggAAAHicY2NgYJjKxMAwD4h7gXguEM8H4j4gvg+UewvE74D4FhA/A+IbQOzoZM/Ax8fHYGNrxWBoZMAQEebCkBDnxcAPlMOGGXFgCAAArl0New==');
Spear := DTMFromString('mlwAAAHicY2dgYLBkYmDwA2JvILYAYlMgdgRiOyC+DZR/D8U3gPgmED8G4gdAnJefxaCqpgJkMcGxvqUtg7aJBQM/kIcLM+LBUAAAkNkLaQ==');
Chest := DTMFromString('mrAAAAHic42BgYMhlYmAoB+JCIE4H4kQgzoHyM4D4KVDNOyC+DcS3gPg1EL8C4idA/BiIrawsGJSUFBmEhYUY9PV1GbR1tBikpaXA/MioMAZ+oBp8mJEAhgEA8/QPBQ==');
Legs := DTMFromString('mlwAAAHicY2dgYDjMxMCwG4g3A/EZID4OxEehYneB8u+B+DUQ3wPim0D8HIgfALGpqTGDuLgYg7y8HIO0lBSDpro6UJQJjPmBJC7MiAdDAQAoJg4G');
end;

procedure EquipGuth;
begin
if not LoggedIn then Exit;
if FindDTM(Helm, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(RandomRange(100,100));
end;
if FindDTM(Chest, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(RandomRange(100,100));
end;
if FindDTM(Legs, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(RandomRange(100,100));
end;
if FindDTM(Spear, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(RandomRange(100,100));
end;
end;


procedure FrDTM;
begin
FreeDTM(Helm);
FreeDTM(Spear);
FreeDTM(Legs);
FreeDTM(Chest);
end;


procedure EquipNorm;
begin
if not LoggedIn then Exit;
InvMouse(1, 1);
Wait(RandomRange(100,100));
InvMouse(2, 1);
Wait(RandomRange(100,100));
InvMouse(3, 1);
Wait(RandomRange(100,100));
InvMouse(4, 1);
Wait(RandomRange(100,100));
if Use2h = 'No' then
InvMouse(5, 1);
Wait(RandomRange(100,100));
end;


procedure Heal;
begin
if not LoggedIn then Exit;
EquipGuth;
repeat
Wait(1);
FindNormalRandoms;
if Hitpoints <= RunAt then
begin
Writeln('WARNING MIN HEALTH - Running Away');
ClimbLadder;
Logout;
TerminateScript;
end;
Until (HitPoints >= HPToHeal);
EquipNorm;
end;


procedure CheckHP;
begin
if not LoggedIn then Exit;
if HitPoints <= RunAt then
begin
Writeln('WARNING MIN HEALTH - Running Away');
ClimbLadder;
Logout;
TerminateScript;
end;
if HitPoints <= HealAt then
begin
Writeln('WARNING LOW HEALTH - Healing with guthans');
Heal;
end;
end;


procedure Proggy;
begin
ClearDebug;
Writeln('|-----------------------------------------------------|');
Writeln('| You have been Training for a total of ' + TimeRunning + ' |');
Writeln('| You have managed to gain ' + IntToStr(GetXpBarTotal - StartExp) + ' exp |');
Writeln('| You are gaining ' + IntToStr(((GetXpBarTotal - StartExp) * 3600) / (GetTimeRunning / 1000)) + ' exp per hour! |');
Writeln('| Thankyou for using Caotoms Armoured Zombie Guthener :) |');
Writeln('|-----------------------------------------------------|');
SRLRandomsReport;
end;


procedure MainLoop;
begin
if not LoggedIn then Exit;
MakeCompass('s');
SetAngle(0);
TurnOnPrayer;
if FindObjTPA(x, y, 6184547, 15, 5, 30, 40, 400, ['Open', 'pen']) then
DownTrapDoor;
if AttPot = 'Yes' then AttPotion;
Wait(RandomRange(550,600));
if StrPot = 'Yes' then StrPotion;
Wait(RandomRange(550,600));
if DefPot = 'Yes' then DefPotion;
Wait(RandomRange(550,600));
repeat
if not LoggedIn then Exit;
FindNormalRandoms;
CheckHP;
RefillPrayer;
TurnOnPrayer;
PotUp;
Proggy;
Antiban;
Wait(RandomRange(200,400));
Until (not LoggedIn) or (TimeFromMark(Total) >= TimeToFight * 60000);
Exit;
end;


begin
Smart_Server := 56;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;

SetupSRL;
ClearDebug;
SetDTM;
MarkTime(Total);

if not LoggedIn then LoginPlayer;
StartExp:= 0;
ToggleXPBar(True);
StartExp:= GetXPBarTotal;
repeat
MainLoop;
Until AllPlayersInactive;
FrDTM;
end.

A proggy (the exp per hour is low as I was using very sub-optimal training gear)
|————————————————————————–|
| You have been Training for a total of 2 hours, 41 Minutes and 15 Seconds |
| You have managed to gain 282264 exp |
| You are gaining 89806 exp per hour! |
| Thankyou for using Caotoms Armoured Zombie Guthener :) |
|————————————————————————–|


This guthans method is easily adapted this generic version (which I also didn't release due to over-crowding) would work very well in places such as the bandit camp.

program CaotomsAutoGuthener;

{$define SMART}
{$i srl/srl.simba}
{$i sps/sps.simba}
{$DEFINE SRL5}


/////YOU MUST HAVE YOUR ARMOR EQUIPPED, GUTHANS IN THE FIRST 4 SLOTS OF INV\\\\
///// AND THE FIFTH SLOT MUST BE EMPTY IF YOU ARE USING A 1 Hander \\\\


const
AttPot = 'Yes'; //Yes if using super att pot
StrPot = 'Yes'; //Yes if using super str pot
DefPot = 'Yes'; //Yes if using super def pot
TimeUntilRefill = 10; //Time between using potions (in mins)
Use2h = 'No'; //No if using a one hander and shield
HPToHeal = 900; //HP to heal back to with guthans
HealAt = 500; //HP to start healing at with guthans
RunAt = 120; //HP to run away and log
TimeToFight = 180; //How long you want to train for (in mins)
RunDirection = 'N'; //The Direction you want to run away in


var
x, y, Att, Str, Def, Helm, Chest, Spear, Legs, Total: Integer;
StartExp: Int64;


procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := ''; //Username Here
Pass := ''; //Password Here
Pin := ''; //Bank Pin Here
BoxRewards := ['XP','xp','lamp']; //Choose Box rewards (Recommend Defult)
Active := True;
end;
end;


Procedure Antiban; //Mostly Thanks to YoHoJo
begin
if(not(LoggedIn))then
Exit;
FindNormalRandoms;
Case Random(500) Of
0:
begin
Writeln('Antiban');
GameTab(tab_Stats) HoverSkill('Hitpoints', False);
Wait(400 + Random(450));
GameTab(tab_Inv);
end;
1:
begin
Writeln('Antiban');
GameTab(tab_Inv);
ExamineInv;
end;
2:
begin
Writeln('Antiban');
SleepAndMoveMouse(3500 + Random(600));
end;
3:
begin
Writeln('Antiban');
GameTab(Tab_Stats);
Wait(3000 + Random(1500));
GameTab(tab_Inv);
end;
4:
begin
Writeln('Antiban');
HoverSkill('random', False);
Wait(1000 + Random(500));
GameTab(tab_Inv);
end;
5:
begin
Writeln('Antiban');
PickUpMouse;
end;
6:
begin
Writeln('Antiban');
BoredHuman;
end;
end;
end;


procedure AttPotion;
begin
if FindColorSpiralTolerance(x, y, 11877176, MIX1, MIY1, MIX2, MIY2, 15) then
begin
Mouse(x, y, 2, 2, True);
MarkTime(Att);
end else
Writeln('Could Not Find Super Attack Potion');
end;


procedure StrPotion;
begin
if FindColorSpiralTolerance(x, y, 11645626, MIX1, MIY1, MIX2, MIY2, 15) then
begin
Mouse(x, y, 2, 2, True);
MarkTime(Str);
end else
Writeln('Could Not Find Super Strength Potion');
end;


procedure DefPotion;
begin
if FindColorSpiralTolerance(x, y, 3707568, MIX1, MIY1, MIX2, MIY2, 15) then
begin
Mouse(x, y, 2, 2, True);
MarkTime(Def);
end else
Writeln('Could Not Find Super Defence Potion');
end;


procedure PotUp;
begin
if not LoggedIn then Exit;
if (TimeFromMark(Att) > TimeUntilRefill * 60000) or
(TimeFromMark(Str) > TimeUntilRefill * 60000) or
(TimeFromMark(Def) > TimeUntilRefill * 60000) then
begin
if AttPot = 'Yes' then AttPotion;
Wait(RandomRange(500,600));
if StrPot = 'Yes' then StrPotion;
Wait(RandomRange(500,600));
if DefPot = 'Yes' then DefPotion;
Wait(RandomRange(500,600));
end;
end;


function HitPoints: Integer;

var
Colour: String;

begin
Result := GetMMLevels('health', Colour);
end;


procedure SetDTM;
begin
Helm := DTMFromString('mggAAAHicY2NgYJjKxMAwD4h7gXguEM8H4j4gvg+UewvE74D4FhA/A+IbQOzoZM/Ax8fHYGNrxWBoZMAQEebCkBDnxcAPlMOGGXFgCAAArl0New==');
Spear := DTMFromString('mlwAAAHicY2dgYLBkYmDwA2JvILYAYlMgdgRiOyC+DZR/D8U3gPgmED8G4gdAnJefxaCqpgJkMcGxvqUtg7aJBQM/kIcLM+LBUAAAkNkLaQ==');
Chest := DTMFromString('mrAAAAHic42BgYMhlYmAoB+JCIE4H4kQgzoHyM4D4KVDNOyC+DcS3gPg1EL8C4idA/BiIrawsGJSUFBmEhYUY9PV1GbR1tBikpaXA/MioMAZ+oBp8mJEAhgEA8/QPBQ==');
Legs := DTMFromString('mlwAAAHicY2dgYDjMxMCwG4g3A/EZID4OxEehYneB8u+B+DUQ3wPim0D8HIgfALGpqTGDuLgYg7y8HIO0lBSDpro6UJQJjPmBJC7MiAdDAQAoJg4G');
end;

procedure EquipGuth;
begin
if not LoggedIn then Exit;
if FindDTM(Helm, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(RandomRange(100,100));
end;
if FindDTM(Chest, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(RandomRange(100,100));
end;
if FindDTM(Legs, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(RandomRange(100,100));
end;
if FindDTM(Spear, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(RandomRange(100,100));
end;
end;


procedure FrDTM;
begin
FreeDTM(Helm);
FreeDTM(Spear);
FreeDTM(Legs);
FreeDTM(Chest);
end;


procedure EquipNorm;
begin
if not LoggedIn then Exit;
InvMouse(1, 1);
Wait(RandomRange(100,100));
InvMouse(2, 1);
Wait(RandomRange(100,100));
InvMouse(3, 1);
Wait(RandomRange(100,100));
InvMouse(4, 1);
Wait(RandomRange(100,100));
if Use2h = 'No' then
InvMouse(5, 1);
Wait(RandomRange(100,100));
end;


procedure Heal;
begin
if not LoggedIn then Exit;
EquipGuth;
repeat
Wait(1);
FindNormalRandoms;
if Hitpoints <= RunAt then
begin
Writeln('WARNING MIN HEALTH - Running Away');
repeat
RunAway(RunDirection,True, 2, 2000);
Logout;
Until(not LoggedIn)
TerminateScript;
end;
Until (HitPoints >= HPToHeal);
EquipNorm;
end;


procedure CheckHP;
begin
if not LoggedIn then Exit;
if HitPoints <= RunAt then
begin
Writeln('WARNING MIN HEALTH - Running Away');
repeat
RunAway(RunDirection,True, 2, 2000);
Logout;
Until(not LoggedIn)
TerminateScript;
end;
if HitPoints <= HealAt then
begin
Writeln('WARNING LOW HEALTH - Healing with guthans');
Heal;
end;
end;


procedure Proggy;
begin
ClearDebug;
Writeln('|-----------------------------------------------------|');
Writeln('| You have been Training for a total of ' + TimeRunning + ' |');
Writeln('| You have managed to gain ' + IntToStr(GetXpBarTotal - StartExp) + ' exp |');
Writeln('| You are gaining ' + IntToStr(((GetXpBarTotal - StartExp) * 3600) / (GetTimeRunning / 1000)) + ' exp per hour! |');
Writeln('| Thankyou for using Caotoms Auto Guthener :) |');
Writeln('|-----------------------------------------------------|');
SRLRandomsReport;
end;


procedure MainLoop;
begin
if not LoggedIn then Exit;
MakeCompass('n');
SetAngle(0);
if AttPot = 'Yes' then AttPotion;
Wait(RandomRange(550,600));
if StrPot = 'Yes' then StrPotion;
Wait(RandomRange(550,600));
if DefPot = 'Yes' then DefPotion;
Wait(RandomRange(550,600));
repeat
if not LoggedIn then Exit;
FindNormalRandoms;
CheckHP;
PotUp;
Proggy;
Antiban;
Wait(RandomRange(200,400));
Until (not LoggedIn) or (TimeFromMark(Total) >= TimeToFight * 60000);
Exit;
end;


begin
Smart_Server := 56;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;

SetupSRL;
ClearDebug;
SetDTM;
MarkTime(Total);

if not LoggedIn then LoginPlayer;
StartExp:= 0;
ToggleXPBar(True);
StartExp:= GetXPBarTotal;
repeat
MainLoop;
Until AllPlayersInactive;
FrDTM;
end.

EDIT: As stated below, I took some time to learn to use TPAs for things such as object finding. Here is an updated version of the armoured zombie killer using TPAs for the ladder (I left the trapdoor and altar as FindObjTPA for smoothness as they are both basically rectangles of almost solid colour).
program CaotomsArmouredZombieGuthener;

{$define SMART}
{$i srl/srl.simba}
{$i sps/sps.simba}
{$DEFINE SRL5}


//// YOU MUST BE STANDING INSIDE THE TUNNEL OR IN FRONT OF THE TRAPDOOR \\\\
//// YOU MUST HAVE YOUR ARMOR EQUIPPED, GUTHANS IN THE FIRST 4 SLOTS OF INV \\\\
//// AND THE FIFTH SLOT MUST BE EMPTY IF YOU ARE USING A 1Hr \\\\


const
AttPot = 20; //Amount of doses you have (Super Att)
StrPot = 24; //Amount of doses you have (Super Str)
DefPot = 20; //Amount of doses you have (Super Def)
TimeUntilRefill = 10; //Time between using potions (in mins)
PrayerRefill = 2; //Prayer points to refill at
Use2h = 'No'; //No if using a one hander and shield
HPToHeal = 900; //HP to heal back to with guthans
HealAt = 500; //HP to start healing at with guthans
RunAt = 120; //HP to run away and log
TimeToFight = 360; //How long you want to train for (in mins)



var
x, y, Att, Str, Def, Apot, Spot, Dpot, Helm, Chest, Spear, Legs, Total: Integer;
StartExp: Int64;


procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := ''; //Username Here
Pass := ''; //Password Here
Pin := ''; //Bank Pin Here
BoxRewards := ['XP','xp','lamp']; //Choose Box rewards (Recommend Defult)
Active := True;
end;
end;


Procedure Antiban; //Mostly Thanks to YoHoJo
begin
if(not(LoggedIn))then
Exit;
FindNormalRandoms;
Case Random(500) Of
0:
begin
Writeln('Antiban');
GameTab(tab_Stats) HoverSkill('Hitpoints', False);
Wait(400 + Random(450));
GameTab(tab_Inv);
end;
1:
begin
Writeln('Antiban');
GameTab(tab_Inv);
ExamineInv;
end;
2:
begin
Writeln('Antiban');
SleepAndMoveMouse(3500 + Random(600));
MakeCompass('s');
SetAngle(0);
end;
3:
begin
Writeln('Antiban');
GameTab(Tab_Stats);
Wait(3000 + Random(1500));
GameTab(tab_Inv);
end;
4:
begin
Writeln('Antiban');
HoverSkill('random', False);
Wait(1000 + Random(500));
GameTab(tab_Inv);
end;
5:
begin
Writeln('Antiban');
PickUpMouse;
MakeCompass('s');
SetAngle(0);
end;
6:
begin
Writeln('Antiban');
BoredHuman;
MakeCompass('s');
SetAngle(0);
end;
end;
end;


procedure AttPotion;
begin
if FindColorSpiralTolerance(x, y, 11877176, MIX1, MIY1, MIX2, MIY2, 15) then
begin
Mouse(x, y, 2, 2, True);
MarkTime(Att);
APot := APot + 1;
end else
Writeln('Could Not Find Super Attack Potion');
end;


procedure StrPotion;
begin
if FindColorSpiralTolerance(x, y, 11645626, MIX1, MIY1, MIX2, MIY2, 15) then
begin
Mouse(x, y, 2, 2, True);
MarkTime(Str);
SPot := SPot + 1;
end else
Writeln('Could Not Find Super Strength Potion');
end;


procedure DefPotion;
begin
if FindColorSpiralTolerance(x, y, 3707568, MIX1, MIY1, MIX2, MIY2, 15) then
begin
Mouse(x, y, 2, 2, True);
MarkTime(Def);
DPot := DPot + 1;
end else
Writeln('Could Not Find Super Defence Potion');
end;


procedure PotUp;
begin
if not LoggedIn then Exit;
if (TimeFromMark(Att) > TimeUntilRefill * 60000) or
(TimeFromMark(Str) > TimeUntilRefill * 60000) or
(TimeFromMark(Def) > TimeUntilRefill * 60000) then
begin
if (TimeFromMark(Att) > TimeUntilRefill * 60000) then
if APot < AttPot then AttPotion;
Wait(RandomRange(550,600));
if (TimeFromMark(Str) > TimeUntilRefill * 60000) then
if SPot < StrPot then StrPotion;
Wait(RandomRange(550,600));
if (TimeFromMark(Def) > TimeUntilRefill * 60000) then
if DPot < DefPot then DefPotion;
Wait(RandomRange(550,600));
end;
end;


function PrayerPoints: Integer;

var
Colour: String;

begin
Result := GetMMLevels('prayer', Colour);
end;


procedure DownTrapDoor;

var
Tries: Integer;

begin
repeat
Wait(200+random(50));
if FindObjTPA(x, y, 6184547, 15, 5, 30, 40, 400, ['Climb', 'limb', 'Trap', 'rapd']) then
begin
Wait(RandomRange(100,200));
ClickMouse2(1);
Wait(RandomRange(200,250));
Exit;
end else
Tries := Tries + 1;
Until (Tries = 15)
if Tries >= 15 then
Writeln('Could Not Find Trapdoor');
end;


procedure WalkTowardsLadder;
begin
Mouse(625, 40, 20, 20, True);
end;


{function ClimbLadder: Boolean;

var
Tries: Integer;

begin
repeat
if FindObjCustom(x, y, ['adder', 'ladder'], [2443349, 2575449, 2377299], 15) then
begin
Wait(RandomRange(100,200));
ClickMouse2(1);
Wait(RandomRange(200,250));
Result := True;
Break;
end else
Tries := Tries + 1;
Wait(200+random(50));
WalkTowardsLadder;
FFlag(6);
Wait(RandomRange(200,400));
Until (Tries = 50)
if Tries >= 50 then
Writeln('Could Not Find Ladder');
end; }


function ClimbLadder: Boolean;

var
CTS, I, R: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;

begin
MarkTime(R);
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.04,0.13);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 2641242, MSX1, MSY1, MSX2, MSY2, 15);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 15, 15);
repeat
For I := 0 to High(ATPA) do
begin
if MiddleTPAEx(ATPA[i], x, y) then
begin
MMouse(x, y, 2, 2);
if IsUpTextMultiCustom(['Climb', 'limb', 'mb-up', 'Ladder', 'adder']) then
begin
Wait(RandomRange(100,200));
ClickMouse2(1);
Wait(RandomRange(1200,1250));
Result := True;
Exit;
end;
end;
end;
Until (TimeFromMark(R) >= 10000)
if TimeFromMark(R) >= 10000 then
Writeln('Could Not Find Ladder');
Wait(200+random(50));
WalkTowardsLadder;
FFlag(6);
Wait(RandomRange(100,250));
end;


function UseAltar: Boolean;

var
Tries: Integer;

begin
repeat
Wait(200+random(50));
if FindObjTPA(x, y, 8753306, 15, 5, 20, 15, 100, ['Pray', 'ray', 'ay-at', 'Chaos', 'haos']) then
begin
Wait(RandomRange(100,200));
ClickMouse2(1);
Wait(RandomRange(200,250));
Result := True;
Break;
end else
Tries := Tries + 1;
Until (Tries = 50)
if Tries >= 50 then
Writeln('Could Not Find Altar');
end;


procedure ClickPray;
begin
MMouse(720, 70, 10, 10);
Wait(RandomRange(100,200));
ClickMouse2(1);
Wait(RandomRange(200,250));
end;


procedure TurnOnPrayer;
begin
if not LoggedIn then Exit;
if FindColorSpiralTolerance(x, y, 9061213, 712, 57, 730, 77, 15) then
begin
ClickPray;
end;
end;


procedure RefillPrayer;
begin
if not LoggedIn then Exit;
if (PrayerPoints <= PrayerRefill) then
begin
if ClimbLadder then
begin
Wait(RandomRange(1000,1200));
if UseAltar then
begin
Wait(RandomRange(1000,1400));
DownTrapDoor;
Wait(RandomRange(600,1000));
end;
end;
end;
end;


function HitPoints: Integer;

var
Colour: String;

begin
Result := GetMMLevels('health', Colour);
end;


procedure SetDTM;
begin
Helm := DTMFromString('mggAAAHicY2NgYJjKxMAwD4h7gXguEM8H4j4gvg+UewvE74D4FhA/A+IbQOzoZM/Ax8fHYGNrxWBoZMAQEebCkBDnxcAPlMOGGXFgCAAArl0New==');
Spear := DTMFromString('mlwAAAHicY2dgYLBkYmDwA2JvILYAYlMgdgRiOyC+DZR/D8U3gPgmED8G4gdAnJefxaCqpgJkMcGxvqUtg7aJBQM/kIcLM+LBUAAAkNkLaQ==');
Chest := DTMFromString('mrAAAAHic42BgYMhlYmAoB+JCIE4H4kQgzoHyM4D4KVDNOyC+DcS3gPg1EL8C4idA/BiIrawsGJSUFBmEhYUY9PV1GbR1tBikpaXA/MioMAZ+oBp8mJEAhgEA8/QPBQ==');
Legs := DTMFromString('mlwAAAHicY2dgYDjMxMCwG4g3A/EZID4OxEehYneB8u+B+DUQ3wPim0D8HIgfALGpqTGDuLgYg7y8HIO0lBSDpro6UJQJjPmBJC7MiAdDAQAoJg4G');
end;

procedure EquipGuth;
begin
if not LoggedIn then Exit;
if FindDTM(Helm, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(RandomRange(100,100));
end;
if FindDTM(Chest, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(RandomRange(100,100));
end;
if FindDTM(Legs, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(RandomRange(100,100));
end;
if FindDTM(Spear, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(RandomRange(100,100));
end;
end;


procedure FrDTM;
begin
FreeDTM(Helm);
FreeDTM(Spear);
FreeDTM(Legs);
FreeDTM(Chest);
end;


procedure EquipNorm;
begin
if not LoggedIn then Exit;
InvMouse(1, 1);
Wait(RandomRange(100,100));
InvMouse(2, 1);
Wait(RandomRange(100,100));
InvMouse(3, 1);
Wait(RandomRange(100,100));
InvMouse(4, 1);
Wait(RandomRange(100,100));
if Use2h = 'No' then
InvMouse(5, 1);
Wait(RandomRange(100,100));
end;


procedure Heal;
begin
if not LoggedIn then Exit;
EquipGuth;
repeat
Wait(1);
FindNormalRandoms;
if Hitpoints <= RunAt then
begin
Writeln('WARNING MIN HEALTH - Running Away');
ClimbLadder;
Logout;
TerminateScript;
end;
Until (HitPoints >= HPToHeal);
EquipNorm;
end;


procedure CheckHP;
begin
if not LoggedIn then Exit;
if HitPoints <= RunAt then
begin
Writeln('WARNING MIN HEALTH - Running Away');
ClimbLadder;
Logout;
TerminateScript;
end;
if HitPoints <= HealAt then
begin
Writeln('WARNING LOW HEALTH - Healing with guthans');
Heal;
end;
end;


procedure Proggy;
begin
ClearDebug;
Writeln('|-----------------------------------------------------|');
Writeln('| You have been Training for a total of ' + TimeRunning + ' |');
Writeln('| You have managed to gain ' + IntToStr(GetXpBarTotal - StartExp) + ' exp |');
Writeln('| You are gaining ' + IntToStr(((GetXpBarTotal - StartExp) * 3600) / (GetTimeRunning / 1000)) + ' exp per hour! |');
Writeln('| Thankyou for using Caotoms Armoured Zombie Guthener :) |');
Writeln('|-----------------------------------------------------|');
SRLRandomsReport;
end;


procedure MainLoop;
begin
if not LoggedIn then Exit;
MakeCompass('s');
SetAngle(0);
APot := 0;
SPot := 0;
DPot := 0;
TurnOnPrayer;
if FindObjTPA(x, y, 6184547, 15, 5, 30, 40, 400, ['Open', 'pen']) then
DownTrapDoor;
if APot < AttPot then AttPotion;
Wait(RandomRange(550,600));
if SPot < StrPot then StrPotion;
Wait(RandomRange(550,600));
if DPot < DefPot then DefPotion;
Wait(RandomRange(550,600));
repeat
if not LoggedIn then Exit;
FindNormalRandoms;
CheckHP;
RefillPrayer;
TurnOnPrayer;
PotUp;
Proggy;
Antiban;
Wait(RandomRange(200,400));
Until (not LoggedIn) or (TimeFromMark(Total) >= TimeToFight * 60000);
Exit;
end;


begin
Smart_Server := 56;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;

SetupSRL;
ClearDebug;
DeclarePlayers;
SetDTM;
MarkTime(Total);

if not LoggedIn then LoginPlayer;
StartExp:= 0;
ToggleXPBar(True);
StartExp:= GetXPBarTotal;
repeat
MainLoop;
Until AllPlayersInactive;
FrDTM;
end.

I have also released a rock crab killer since posting this application.

Thank you so much for your time and I hope that you will consider me :)
~Caotom

[XoL]

2012-02-17 07:37:03

I am going to say yes, although this application kind of "intrigues me" I see that you have posted 83 times since Jan 1st, (The rest were months and months ago) Which I consider to be fairly active, you post everywhere as well (Big plus!)
–
I see your scripting ability is not bad, I kind of wish you put one of your scripts up (Perhaps none of those, but something you wrote just to see what other people think of your scripts (Regular members, as in turn we are exist to help the community and well they are the community :P)
–

Best of luck :)

Caotom

2012-02-17 08:08:21

From: R4nd0m
I am going to say yes, although this application kind of "intrigues me" I see that you have posted 83 times since Jan 1st, (The rest were months and months ago) Which I consider to be fairly active, you post everywhere as well (Big plus!)
–
I see your scripting ability is not bad, I kind of wish you put one of your scripts up (Perhaps none of those, but something you wrote just to see what other people think of your scripts (Regular members, as in turn we are exist to help the community and well they are the community :P)
–

Best of luck :)


I am planning on starting work on a script to put up to regular members tomorrow, I just need a good idea on something that can be readily botted that is not already made.
And yeah, I joined when I was 14, needless to say, trying to learn to script didn't go so well.

Thanks mate :)
~Caotom

masterBB

2012-02-17 10:53:47

I voted no, the only method you used to interact with objects in the rs environment which are not on an interface is findObjectTpa and findObjectCustom. I do like the radial walking though. Script could also use more failsafes.

Er1k

2012-02-17 23:16:13

From: R4nd0m

I see your scripting ability is not bad, I kind of wish you put one of your scripts up (Perhaps none of those, but something you wrote just to see what other people think of your scripts (Regular members, as in turn we are exist to help the community and well they are the community :P)


His guthans method if made public, I'm sure it will be plagiarized and copied to other combat scripts.

@OP, I think you did a good job with the combat scripts you're applying with. People have always been complaining how the public fighters are lacking in prayer and pots support and you seem to have managed that on your own. This alone makes your application stand out from the recent trashy ones.

I'm inclined to give a yes. Keep up the good work.

Caotom

2012-02-18 19:19:44

I have now released a public script (a rock crab trainer). I tried to use slightly more advanced object finding techniques (CTS) for getting the crabs. I had to fall back on using SPS for the walking to reset agro as it was a lot smoother than using dtms or radial walk.

~Caotom

PatDuffy

2012-02-18 19:25:08

I'm sorry but I require TPA's/ATPA's for a yes vote, although everything does look nice.

If you can create something with TPA's that works, I might change my vote.

Caotom

2012-02-18 19:31:07

From: PatDuffy
I'm sorry but I require TPA's/ATPA's for a yes vote, although everything does look nice.

If you can create something with TPA's that works, I might change my vote.


Ah yes, TPAs,
I spent all of yesterday looking into using them, or at least using them to replace basic findObj and findObjTPA. I used them to find the rock crabs in my new script. I could easily change the two that I posted up here to use them but am I actually allowed to edit scripts once they are posted for application?


This is the Armoured Zombie Killer with TPAs
program CaotomsArmouredZombieGuthener;

{$define SMART}
{$i srl/srl.simba}
{$DEFINE SRL5}


//// YOU MUST BE STANDING INSIDE THE TUNNEL OR IN FRONT OF THE TRAPDOOR \\\\
//// YOU MUST HAVE YOUR ARMOR EQUIPPED, GUTHANS IN THE FIRST 4 SLOTS OF INV \\\\
//// AND THE FIFTH SLOT MUST BE EMPTY IF YOU ARE USING A 1Hr \\\\


const
AttPot = 0; //Amount of doses you have (Super Att)
StrPot = 0; //Amount of doses you have (Super Str)
DefPot = 0; //Amount of doses you have (Super Def)
TimeUntilRefill = 10; //Time between using potions (in mins)
PrayerRefill = 2; //Prayer points to refill at
Use2h = 'Yes'; //No if using a one hander and shield
HPToHeal = 900; //HP to heal back to with guthans
HealAt = 500; //HP to start healing at with guthans
RunAt = 120; //HP to run away and log
TimeToFight = 360; //How long you want to train for (in mins)



var
x, y, Att, Str, Def, Apot, Spot, Dpot, Helm, Chest, Spear, Legs, Total: Integer;
StartExp: Int64;


procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
with Players[0] do
begin
Name := ''; //Username Here
Pass := ''; //Password Here
Pin := ''; //Bank Pin Here
BoxRewards := ['XP','xp','lamp']; //Choose Box rewards (Recommend Defult)
Active := True;
end;
end;


Procedure Antiban; //Mostly Thanks to YoHoJo
begin
if(not(LoggedIn))then
Exit;
FindNormalRandoms;
Case Random(500) Of
0:
begin
Writeln('Antiban');
GameTab(tab_Stats) HoverSkill('Hitpoints', False);
Wait(400 + Random(450));
GameTab(tab_Inv);
end;
1:
begin
Writeln('Antiban');
GameTab(tab_Inv);
ExamineInv;
end;
2:
begin
Writeln('Antiban');
SleepAndMoveMouse(3500 + Random(600));
MakeCompass('s');
SetAngle(0);
end;
3:
begin
Writeln('Antiban');
GameTab(Tab_Stats);
Wait(3000 + Random(1500));
GameTab(tab_Inv);
end;
4:
begin
Writeln('Antiban');
HoverSkill('random', False);
Wait(1000 + Random(500));
GameTab(tab_Inv);
end;
5:
begin
Writeln('Antiban');
PickUpMouse;
MakeCompass('s');
SetAngle(0);
end;
6:
begin
Writeln('Antiban');
BoredHuman;
MakeCompass('s');
SetAngle(0);
end;
end;
end;


procedure AttPotion;
begin
if FindColorSpiralTolerance(x, y, 11877176, MIX1, MIY1, MIX2, MIY2, 15) then
begin
Mouse(x, y, 2, 2, True);
MarkTime(Att);
APot := APot + 1;
end else
Writeln('Could Not Find Super Attack Potion');
end;


procedure StrPotion;
begin
if FindColorSpiralTolerance(x, y, 11645626, MIX1, MIY1, MIX2, MIY2, 15) then
begin
Mouse(x, y, 2, 2, True);
MarkTime(Str);
SPot := SPot + 1;
end else
Writeln('Could Not Find Super Strength Potion');
end;


procedure DefPotion;
begin
if FindColorSpiralTolerance(x, y, 3707568, MIX1, MIY1, MIX2, MIY2, 15) then
begin
Mouse(x, y, 2, 2, True);
MarkTime(Def);
DPot := DPot + 1;
end else
Writeln('Could Not Find Super Defence Potion');
end;


procedure PotUp;
begin
if not LoggedIn then Exit;
if (TimeFromMark(Att) > TimeUntilRefill * 60000) or
(TimeFromMark(Str) > TimeUntilRefill * 60000) or
(TimeFromMark(Def) > TimeUntilRefill * 60000) then
begin
if (TimeFromMark(Att) > TimeUntilRefill * 60000) then
if APot < AttPot then AttPotion;
Wait(RandomRange(550,600));
if (TimeFromMark(Str) > TimeUntilRefill * 60000) then
if SPot < StrPot then StrPotion;
Wait(RandomRange(550,600));
if (TimeFromMark(Def) > TimeUntilRefill * 60000) then
if DPot < DefPot then DefPotion;
Wait(RandomRange(550,600));
end;
end;


function PrayerPoints: Integer;

var
Colour: String;

begin
Result := GetMMLevels('prayer', Colour);
end;


procedure DownTrapDoor;

var
E: Integer;



begin
MarkTime(E);
repeat
Wait(200+random(50));
if FindObjTPA(x, y, 6184546, 15, 5, 30, 40, 400, ['Open', 'pen', 'Trap', 'rapd']) then
begin
Wait(RandomRange(100,200));
ClickMouse2(1);
Wait(RandomRange(200,250));
Break;
end;
Until (TimeFromMark(E) >= 10000)
if TimeFromMark(E) >= 10000 then
Writeln('Could Not Find Trapdoor');
end;


procedure WalkTowardsLadder;
begin
Mouse(625, 40, 20, 20, True);
end;


procedure ClimbLadder;

var
CTS, I, R: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;

begin
MarkTime(R);
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.07,0.12);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 2509399, MSX1, MSY1, MSX2, MSY2, 5);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 15, 15);
repeat
For I := 0 to High(ATPA) do
begin
if MiddleTPAEx(ATPA[i], x, y) then
begin
MMouse(x, y, 2, 2);
if IsUpTextMultiCustom(['Climb', 'limb', 'mb-up', 'Ladder', 'adder']) then
begin
Wait(RandomRange(100,200));
ClickMouse2(1);
Wait(RandomRange(1200,1250));
Break;
end;
end;
end;
Until (TimeFromMark(R) >= 10000)
if TimeFromMark(R) >= 10000 then
Writeln('Could Not Find Ladder');
Wait(200+random(50));
WalkTowardsLadder;
FFlag(6);
Wait(RandomRange(100,250));
end;


procedure UseAltar;

var
CTS, I, T: Integer;
TPA: TPointArray;
ATPA: Array of TPointArray;

begin
MarkTime(T);
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(0.17,0.48);
FindColorsSpiralTolerance(MSCX, MSCY, TPA, 8621463, MSX1, MSY1, MSX2, MSY2, 5);
ColorToleranceSpeed(CTS);
ATPA := TPAToATPAEx(TPA, 15, 15);

For I := 0 to High(ATPA) do
repeat
begin
if MiddleTPAEx(ATPA[i], x, y) then
begin
MMouse(x, y, 2, 2);
if IsUpTextMultiCustom(['Pray', 'ray', 'ay-at', 'Chaos', 'haos']) then
begin
Wait(RandomRange(100,200));
ClickMouse2(1);
Wait(RandomRange(200,250));
Break;
end;
end;
end;
Until (TimeFromMark(T) >= 10000);
if TimeFromMark(T) >= 10000 then
Writeln('Could Not Find Altar');
end;


procedure ClickPray;
begin
MMouse(720, 70, 10, 10);
Wait(RandomRange(100,200));
ClickMouse2(1);
Wait(RandomRange(200,250));
end;


procedure TurnOnPrayer;
begin
if not LoggedIn then Exit;
if FindColorSpiralTolerance(x, y, 9061213, 712, 57, 730, 77, 15) then
begin
ClickPray;
end;
end;


procedure RefillPrayer;
begin
if not LoggedIn then Exit;
if (PrayerPoints <= PrayerRefill) then
begin
ClimbLadder;
Wait(RandomRange(1000,1200));
UseAltar;
Wait(RandomRange(1000,1400));
DownTrapDoor;
Wait(RandomRange(600,1000));
end;
end;


function HitPoints: Integer;

var
Colour: String;

begin
Result := GetMMLevels('health', Colour);
end;


procedure SetDTM;
begin
Helm := DTMFromString('mggAAAHicY2NgYJjKxMAwD4h7gXguEM8H4j4gvg+UewvE74D4FhA/A+IbQOzoZM/Ax8fHYGNrxWBoZMAQEebCkBDnxcAPlMOGGXFgCAAArl0New==');
Spear := DTMFromString('mlwAAAHicY2dgYLBkYmDwA2JvILYAYlMgdgRiOyC+DZR/D8U3gPgmED8G4gdAnJefxaCqpgJkMcGxvqUtg7aJBQM/kIcLM+LBUAAAkNkLaQ==');
Chest := DTMFromString('mrAAAAHic42BgYMhlYmAoB+JCIE4H4kQgzoHyM4D4KVDNOyC+DcS3gPg1EL8C4idA/BiIrawsGJSUFBmEhYUY9PV1GbR1tBikpaXA/MioMAZ+oBp8mJEAhgEA8/QPBQ==');
Legs := DTMFromString('mlwAAAHicY2dgYDjMxMCwG4g3A/EZID4OxEehYneB8u+B+DUQ3wPim0D8HIgfALGpqTGDuLgYg7y8HIO0lBSDpro6UJQJjPmBJC7MiAdDAQAoJg4G');
end;

procedure EquipGuth;
begin
if not LoggedIn then Exit;
if FindDTM(Helm, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(RandomRange(100,100));
end;
if FindDTM(Chest, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(RandomRange(100,100));
end;
if FindDTM(Legs, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(RandomRange(100,100));
end;
if FindDTM(Spear, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 2, 2, True);
Wait(RandomRange(100,100));
end;
end;


procedure FrDTM;
begin
FreeDTM(Helm);
FreeDTM(Spear);
FreeDTM(Legs);
FreeDTM(Chest);
end;


procedure EquipNorm;
begin
if not LoggedIn then Exit;
InvMouse(1, 1);
Wait(RandomRange(100,100));
InvMouse(2, 1);
Wait(RandomRange(100,100));
InvMouse(3, 1);
Wait(RandomRange(100,100));
InvMouse(4, 1);
Wait(RandomRange(100,100));
if Use2h = 'No' then
InvMouse(5, 1);
Wait(RandomRange(100,100));
end;


procedure Heal;
begin
if not LoggedIn then Exit;
EquipGuth;
repeat
Wait(1);
FindNormalRandoms;
if Hitpoints <= RunAt then
begin
Writeln('WARNING MIN HEALTH - Running Away');
ClimbLadder;
Logout;
TerminateScript;
end;
Until (HitPoints >= HPToHeal);
EquipNorm;
end;


procedure CheckHP;
begin
if not LoggedIn then Exit;
if HitPoints <= RunAt then
begin
Writeln('WARNING MIN HEALTH - Running Away');
ClimbLadder;
Logout;
TerminateScript;
end;
if HitPoints <= HealAt then
begin
Writeln('WARNING LOW HEALTH - Healing with guthans');
Heal;
end;
end;


procedure Proggy;
begin
ClearDebug;
Writeln('|-----------------------------------------------------|');
Writeln('| You have been Training for a total of ' + TimeRunning + ' |');
Writeln('| You have managed to gain ' + IntToStr(GetXpBarTotal - StartExp) + ' exp |');
Writeln('| You are gaining ' + IntToStr(((GetXpBarTotal - StartExp) * 3600) / (GetTimeRunning / 1000)) + ' exp per hour! |');
Writeln('| Thankyou for using Caotoms Armoured Zombie Guthener :) |');
Writeln('|-----------------------------------------------------|');
SRLRandomsReport;
end;


procedure MainLoop;
begin
if not LoggedIn then Exit;
MakeCompass('s');
SetAngle(0);
APot := 0;
SPot := 0;
DPot := 0;
TurnOnPrayer;
if FindObjTPA(x, y, 6184547, 15, 5, 30, 40, 400, ['Open', 'pen']) then
DownTrapDoor;
if APot < AttPot then AttPotion;
Wait(RandomRange(550,600));
if SPot < StrPot then StrPotion;
Wait(RandomRange(550,600));
if DPot < DefPot then DefPotion;
Wait(RandomRange(550,600));
repeat
if not LoggedIn then Exit;
FindNormalRandoms;
CheckHP;
RefillPrayer;
TurnOnPrayer;
PotUp;
// Proggy;
Antiban;
Wait(RandomRange(200,400));
Until (not LoggedIn) or (TimeFromMark(Total) >= TimeToFight * 60000);
Exit;
end;


begin
Smart_Server := 56;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;

SetupSRL;
ClearDebug;
DeclarePlayers;
SetDTM;
MarkTime(Total);

if not LoggedIn then LoginPlayer;
StartExp:= 0;
ToggleXPBar(True);
StartExp:= GetXPBarTotal;
repeat
MainLoop;
Until AllPlayersInactive;
FrDTM;
end.

~Caotom

Silent

2012-02-26 03:48:53

DTMS, TPAs, some Radial walk, clean standards, and a willingness to respond positively to feedback. You have my Yes vote.

the flea

2012-03-06 13:46:01

Voted yes, you show a clear understanding of the SRL library and SIMBA scripting. Use some advanced methods in your scripts and most of all have a great attitude from what I have seen and read.

E: just realised the poll is closed I was too late to vote

Caotom

2012-03-12 02:27:22

Out of curiosity, how long does the final decision period go for (I know the voting goes for 14 days). The people I have talked to reckon it's 3 days, but mine's been a little over a week.
Thanks for voting on my application and leaving feedback :D It definitely helped me look at what I need to work. Even if I don't get accepted it was still worth applying for the feedback from skilled members :)

~Caotom

Mat

2012-03-12 03:59:06

being its 50-50 once a admin get to it he will decide either way, depends how long they take.
Mat

masterBB

2012-03-12 04:02:17

The flea still voted yes, though a bit after the poll is closed. Isn't it safe to say you are in with 11-10?

Caotom

2012-03-12 04:04:52

From: masterBB
The flea still voted yes, though a bit after the poll is closed. Isn't it safe to say you are in with 11-10?


I hope so :) but I doubt it would make a difference, it is close enough that it really is up to the admin the looks at my app.
I think it was a good effort and result for my first app, if I do not make it in now, I reckon I'll have a very good shot in a month or two.

~Caotom

Hobbit

2012-03-17 20:52:49

Sorry but the poll has closed. It was very close but not quite there. You may reapply in one weeks time :)