Nice one :D
Printable View
I rarely take time to post anything, but i could not leave this one un-posted: I LOVE THIS SCRIPT. It reminds me of the good ol´ Reflection-script times. Thank you very much for making this. Gr8 script.
Very nice script! One suggestion I have is to create 3 or so "Speed Levels" (one would be the current speed, one approximately 2x faster, one mousekey speed (if you decide to do that), etc).
I used to use very fast reflection bots to clean herbs and never got banned or rolled back, so I'm not very worried about Jagex catching me. Thus I tried to speed up the script by reducing some of the wait times and was able to get something like 5k herbs an hour.
I would speed it up even more, but I think the MouseItem function you use to click is inherently slow by itself, and I can't seem to find where that function is. Can anyone point it out to me so I can try to speed up the script some more? I'll be happy to post my final code after I'm satisfied with the speed!
Also, I can't seem to find a function that waits for non-integer amounts of time. Anyone know if this is possible? If not, I'll do some research on Google :P.
PS: for anyone that's interested in displaying your xp/hour, use something like
Code:HERB_EXP := (experience for cleaning one herb here);
CleanedPerHour := Round((HERBS_CLEANED * 3600) / (GetTimeRunning / 1000));
writeln('XP Per Hour: ' + ToStr(HERB_EXP * CleanedPerHour));
i get this message:
Quote:
Exception in Script: Unable to find file 'SRL/SRL.scar' used from ''
doesn't exist
Exception in Script: Plugin(irokiplugin32) has not been found
Exception in Script: Plugin(irokiplugin32) has not been found
Exception in Script: Plugin(irokiplugin32) has not been found
Exception in Script: Plugin(irokiplugin32) has not been found
Exception in Script: Plugin(irokiplugin32) has not been found
Exception in Script: Plugin(irokiplugin32) has not been found
Exception in Script: Plugin(irokiplugin32) has not been found
Exception in Script: Plugin(irokiplugin32) has not been found
You two, are you both updated? :)
Well then, I'm sure you will LOVE my next two releases...
Here is some hints...
Script one... Four portals...
Script two... two avatars?...
I WONDERRRR WHAT THEY AREEE :O?
You can probably guess what they are and might be thinking, no, making a herb cleaner doesn't mean you can suddenly do that... but i would like to think i have picked things up fairly quickly, I know a few other languages and its just a matter of learning the API
Already finished script one, about 30% done on second.
I'm excited, your herb cleaner is great. Should be moved to "herblore" scripts as the other 2 don't work.
This is awesome! I got herblore lvl 17->61 in two days!
Doesn't work because of the newest rs update.it can't bank.
~~~~~~~~~iCleaner~~~~~~~~~~~~~~
Time running: 6:1:7
Herbs cleaned: 25839
Loads cleaned: 922
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To bank follow my tutorial:
http://villavu.com/forum/showthread....761#post881761
Do you have plans to add sw bank?
Is iCleaner updated to SRL5?
It doesn't work.still pressing deposit money pouch.
whilst trying to run this i got multiple problems, two of which i fixed, but the problems just kept coming, so i recorded it to show you exactly what they are..
http://www.youtube.com/watch?v=QmxOuDIV6_8
You might want to update this to SRL5.
this dont work for me,
it goes to bank withdraws the right herb, then cleans it and then opens bank up again and then just freezes there it dont actualy withdraw a new inventory :(
just seen it clicks the deposit cash from pouch instead of deposting my inventory :(
It clicks the Deposit Coins button instead of the Deposit Inventory button because it hasn't been updated to SRL5.
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!
Code: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.