Here is a quick fix for everyone till owner gets back. Nothing added. I just fixed for srl5 update to check it out. Nice little first script here. :sasmokin:
to the writer I like your "Pattern" mouse item.
I recommend writing your own bank finding algo. The srl ones are to general. Goodluck!
progress report
~~~~~~~~~iCleaner~~~~~~~~~~~~~~
Time running: 5:1:19
Herbs cleaned: 19878
Loads cleaned: 709
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OUT OF HERBS, LOGGING OUT!
Program iCleaner;
//MAKE SURE NO OTHER HERBS ARE VISIBLE IN YOUR BANK OTHER THAN THE ONE YOU ARE USING, OTHERWISE IT WILL NOT STOP WHEN OUT OF HERBS
//(You can have them in your bank, just not visible)
//
// NOTE: SOME HERBS HAVE NOT BEEN TESTED
// IF THEY DON'T WORK TELL ME,
// ALTHOUGH THEY SHOUlD BE FINE :).
//
// INSTRUCTIONS
//
// ► FILL IN THE OPTIONS, HERE IS AN EXPLANATION OF BANK SETTINGS: http://i1139.photobucket.com/albums/n560/iCURiP/exmple.png
// ► START AT ANY SRL SUPPORTED NPC BANK
// ► MAKE SURE THE ONLY HERBS VISIBLE ARE THE ONES YOU WANT TO USE.
// ► THERE IS NO NEED TO INPUT WHAT HERB YOU WANT, AS IT JUST GETS THE ONE IN THE SLOT YOU CHOOSE IN BANK SETTINGS
//
// TIPS
//
// ► TO FIND PROFITABLE HERBS I SUGGEST GOING HERE > http://runescape.wikia.com/wiki/Calculator:Herblore/Herbs
// ► TO BE SURE YOUR HERB IS PROFITABLE BUY, CLEAN AND SELL ONE OF THE HERB, SOMETIMES IT MAY SAY ITS PROFITABLE BUT PRICES FLUCTUATE A LOT
// ► SOMETIMES IT MAY BE WORTH A COUPLE LESS GP PROFIT IN ORDER TO GET MORE EXP TO SAVE MONEY RATHER THAN GETTING HERBLORE NORMALLY
var
HERB, X, Y, BankTabOfHerb, BankSlotX, BankSlotY, ISlot, HERBS_CLEANED:Integer;
DTMString:String;
UseAntiban:Boolean;
Pattern, Clock:TIntegerArray;
{$define SMART} //Comment this if you are not using SMART
{$i SRL/SRL.simba}
Procedure DeclarePlayers;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
//----------------OPTIONS START HERE-----------------|
Players[0].Name :='';//Username //|
Players[0].Pass :='';//Password //|
Players[0].Nick :='Mr ';//3-4 letters of name //|
Players[0].Active:= True; //|
// |
//Go to instructions for example of bank settings. |
//Preset is the main tab, first slot. |
//-----------------BANK_SETTINGS---------------------|
BankTabOfHerb := 1; //|
BankSlotX := 0; //|
BankSlotY := 0; //|
//-----------------OTHER_SETTINGS--------------------|
UseAntiban := True; //Use Antiban? True/False |
//---------------------------------------------------|
//OPTIONS END HERE////////////////////////////////////////////////////////////////
DTMString := 'mrAAAAHic42BgYLAGYicgdgZiRyC2AWIzINYHYlsgzgXiJCBOh7ILgbgYiAug4s5mskCSCSdmZcAPGAlgGAAAAu0F8g==';//Change this if the DTM is broken.
Smart_Server := 86;
Smart_Members := True;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
end;
Procedure Antiban;
begin
if UseAntiban then
case random(40) of
0: RandomRClick;
1: PickUpMouse;
2: RandomRClick;
3: RandomMovement;
4: ExamineInv;
end;
end;
Procedure PROGRESS_REPORT;
begin
writeln('~~~~~~~~~iCleaner~~~~~~~~~~~~~~');
Clock := [0,0,0];
ConvertTime(GetTimeRunning,Clock[0],Clock[1],Clock[2]);
Writeln(' Time running: ' +tostr(Clock[0])+':'+tostr(Clock[1])+':'+tostr(Clock[2]));
writeln('Herbs cleaned: ' + IntToStr(HERBS_CLEANED));
writeln('Loads cleaned: ' + IntToStr(HERBS_CLEANED/28));
writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
end;
Procedure BankDoesNotContainHerb;
begin
if NOT FindDTM(HERB,X, Y, MSX1, MSY1, MSX2, MSY2) then
if NOT FindDTM(HERB,X, Y, MSX1, MSY1, MSX2, MSY2) then
if NOT FindDTM(HERB,X, Y, MSX1, MSY1, MSX2, MSY2) then
if NOT FindDTM(HERB,X, Y, MSX1, MSY1, MSX2, MSY2) then
if NOT FindDTM(HERB,X, Y, MSX1, MSY1, MSX2, MSY2) then
writeln('OUT OF HERBS, LOGGING OUT!');
CloseBank;
Logout;
TerminateScript;
end;
Procedure FAILSAFE;
begin
if Not LoggedIn then
begin
LogInPlayer;
ClickNorth(SRL_ANGLE_HIGH); //Or SRL_ANGLE_LOW or SRL_ANGLE_NONE
SetAngle(SRL_ANGLE_HIGH); //Or SRL_ANGLE_LOW
end;
FindNormalRandoms;
LevelUp;
end;
Procedure Clean;
var SlotBox:TBox;
begin
Case Random(16) Of
0:Pattern := [1, 5, 9, 13, 17, 21, 25, 2, 6, 10, 14, 18, 22, 26, 3, 7, 11, 15, 19, 23, 27, 4, 8, 12, 16, 20, 24, 28];
1:Pattern := [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28];
2:Pattern := [1, 5, 2, 9, 6, 3, 13, 10, 7, 4, 17, 14, 11, 8, 21, 18, 15, 12, 25, 22, 19, 16, 26, 23, 20, 27, 24, 28];
3:Pattern := [1, 2, 5, 6, 9, 10, 13, 14, 17, 18, 21, 22, 25, 26, 3, 4, 7, 8, 11, 12, 15, 16, 19, 20, 23, 24, 27, 28];
4:Pattern := [1, 2, 3, 4, 8, 7, 6, 5, 9, 10, 11, 12, 16, 15, 14, 13, 17, 18, 19, 20, 24, 23, 22, 21, 25, 26, 27, 28];
5:Pattern := [1, 2, 3, 4, 8, 12, 16, 20, 24, 28, 27, 26, 25, 21, 17, 13, 9, 5, 6, 7, 11, 15, 19 ,23 ,22 ,18 ,14 ,10];
6:Pattern := [1, 5, 9, 13, 17, 21, 25, 26, 22, 18, 14, 10, 6, 2, 3, 7, 11, 15, 19, 23, 27, 28, 24, 20, 16, 12, 8, 4];
7:Pattern := [1, 5, 9, 13, 17, 21, 25, 26, 27, 28, 24, 20, 16, 12, 8, 4, 3, 2, 6, 10, 14, 18, 22, 23, 19, 15, 11, 7];
8:Pattern := [2, 1, 5, 6, 10, 9, 13, 14, 18, 17, 21, 22, 26, 25, 4, 3, 7, 8, 12, 11, 15, 16, 20, 19, 23, 24, 28, 27];
9:Pattern := [28, 24, 20, 16, 12, 8, 4, 3, 7, 11, 15, 19, 23, 27, 26, 22, 18, 14, 10, 6, 2, 1, 5, 9, 13, 17, 21, 25];
10:Pattern := [28, 27, 26, 25, 21, 22, 23, 24, 20, 19, 18, 17, 13, 14, 15, 16, 12, 11, 10, 9, 5, 6, 7, 8, 4, 3, 2, 1];
11:Pattern := [25, 26, 27, 28, 24, 23, 22, 21, 17, 18, 19, 20, 16, 15, 14, 13, 9, 10, 11, 12, 8, 7, 6, 5, 1, 2, 3, 4];
12:Pattern := [4, 3, 7, 8, 12, 11, 15, 16, 20, 19, 23, 24, 28, 27, 26, 25, 21, 22, 18, 17, 13, 14, 10, 9, 5, 6, 2, 1];
13:Pattern := [25, 21, 17, 13, 9, 5, 1, 2, 6, 10, 14, 18, 22, 26, 27, 23, 19, 15, 11, 7, 3, 4, 8 ,12 ,16 ,20 ,24 ,28];
14:Pattern := [4, 8, 12, 16, 20, 24, 28, 27, 23, 19, 15, 11, 7, 3, 2, 6, 10, 14, 18, 22, 26, 25, 21, 17, 13, 9, 5, 1];
15:Pattern := [4, 8, 12, 16, 20, 24, 28, 27, 26, 25, 21, 17, 13, 9, 5, 1, 2, 3, 7, 11, 15, 19, 23, 22, 18, 14, 10, 6];
end;
for ISlot := 0 To 27 Do
begin
HERB := DTMFromString(DTMString);
SlotBox := InvBox(Pattern[ISlot]);
if FindDTM(HERB, X, Y, SlotBox.X1, SlotBox.Y1, SlotBox.X2, SlotBox.Y2) then
begin
MouseItem(Pattern[ISlot], 1);
wait(5 + Random(50));
HERBS_CLEANED := HERBS_CLEANED + 1;
if ISlot = 27 then
begin
wait(500 + Random(1000));
end;
end;
FreeDTM(HERB);
end;
end;
begin
DeclarePlayers;
Repeat
Antiban;
FAILSAFE;
HERB := DTMFromString(DTMString);
if FindDTM(HERB, X, Y, MIX1, MIY1, MIX2, MIY2) then
begin
FreeDTM(HERB);
Clean;
end;
HERB := DTMFromString(DTMString);
if Not FindDTM(HERB, X, Y, MIX1, MIY1, MIX2, MIY2) then
begin
if Not BankScreen then
begin
OpenBankNPC;
wait(150 + Random(500));
Antiban;
wait(150 + Random(500));
end;
if BankScreen then
begin
BankTab(BankTabOfHerb);
wait(50 + Random(100));
Antiban;
wait(50 + Random(100));
DepositAll;
wait(50 + Random(250));
Antiban;
wait(50 + Random(250));
if Not FindDTM(HERB, X, Y, MSX1, MSY1, MSX2, MSY2) then
BankDoesNotContainHerb;
Withdraw(BankSlotX, BankSlotY, 28);
wait(100 + Random(500));
CloseBank;
wait(50 + Random(250));
Antiban;
wait(50 + Random(250));
end;
end;
Antiban;
wait(50 + Random(100));
FreeDTM(HERB);
PROGRESS_REPORT;
Until(False);
end.