shstiger2009
2011-11-16 13:01:03
I am so proud that I was able to learn this and make this script! I've only been here a few weeks and have learned so much, and want to learn more. I borrowed and followed other players scripts to do some of my functions, and it's working quite well for me, but a shout out to the SRL developers as I've learned a lot and this script is based off of seeing others and learning from that. So how's this script?
Also, a lot of players were requesting an Herb Cleaner, and while neeger made one, I've seen reports of bugs. For me, this script has worked flawlessly until it runs out of herbs. Then it doesn't know how to Logout, lol, but I'll put it in soon.
Also, a lot of players were requesting an Herb Cleaner, and while neeger made one, I've seen reports of bugs. For me, this script has worked flawlessly until it runs out of herbs. Then it doesn't know how to Logout, lol, but I'll put it in soon.
program HerbCleaner;
{$DEFINE SMART}
{$i SRL/SRL.scar}
var
AntiBanCounter, MainAntiBanCounter: integer;
RandomLevel: string;
{
Setup:
-Have herbs in 1st bank slot
-Have character in the bank
-Fill in setup below and you're done!
}
Const
HowManyCleaned = 1000; //How many herbs do you have to clean?
WhichBank = ''; // Which bank are you in? vwb, veb, feb, fwb, etc. (All SRL banks supported)
Member = true; // Are you a member? True (only member skill)
LampSkillxp = 'Herblore'; // Where you want lamp experience?(from random)
FrequencyOfAntiBan = 3; // How often do you want to perform antiban? after 1, 2, or 3 loads?
procedure DeclarePlayers;
begin
HowManyPlayers := 1; // Total amount, multiple players not supported
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; // Username
Players[0].Pass := ''; // Password
Players[0].Nick := ''; // 3-4 lowercase letters from username
Players[0].Active := True; // Set to true if you want to use Player 0
Players[0].Pin := ''; // Leave blank if the player doesn't have a bank pin
Players[0].BoxRewards := ['Xp', 'mote', 'ostume', 'oins', 'aphire', 'ssence'];
end;
{ Setup complete. Click run and enjoy!
}
Procedure FreeAllDTMs;
begin
Writeln('Freed all DTMs');
end;
procedure StartSmart;
begin
Smart_Server := (155); // Smart Server
Smart_Members := (Member);
Smart_Signed := True;
Smart_SuperDetail := False;
end;
Procedure CheckLevel;
begin
writeln('Checking herblore level');
Mouse(599, 189, 4, 4, true);
MMouse(591, 337, 8, 8)
wait(2000 + random (1000));
GameTab(25); //inv
end;
Procedure MoveCompassRandom;
begin
writeln('moving compass');
Case Random(4) of
0: MakeCompass('N');
1: MakeCompass('E');
2: MakeCompass('S');
3: MakeCompass('W');
end;
end;
Procedure RandomLevelPicker;
begin
Case Random(15) of
0: RandomLevel := 'mining';
1: RandomLevel := 'attack';
2: RandomLevel := 'defense';
3: RandomLevel := 'strength';
4: RandomLevel := 'range';
5: RandomLevel := 'herblore';
6: RandomLevel := 'magic';
7: RandomLevel := 'runecrafting';
8: RandomLevel := 'smithing';
9: RandomLevel := 'fishing';
10: RandomLevel := 'cooking';
11: RandomLevel := 'crafting';
12: RandomLevel := 'woodcutting';
13: RandomLevel := 'firemaking';
end;
end;
Procedure AntiBan;
begin
Writeln('Performing Anti-ban..');
Case Random(7) of
0: CheckLevel;
1: MMouse(268, 172, 200, 200);
2: MoveCompassRandom;
end;
Writeln('AntiBan Complete');
AntiBanCounter := 0;
MainAntiBanCounter := MainAntiBanCounter + 1;
end;
procedure AntiRandoms; // ---Calls Anti-randoms---
begin
if not LoggedIn then exit;
FindNonInventoryRandoms;
FindNormalRandoms;
LampSkill := (LampSkillxp);
LevelUp;
end;
procedure Clean;
var
Slots: TIntegerArray;
i: integer;
begin
if not LoggedIn then Exit;
Slots := [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];
for i := 0 to 27 do
begin
if not ExistsItem(Slots[i]) then Continue;
MouseItem(Slots[i], True);
Inc(Players[CurrentPlayer].Integers[0]);
Wait(450 + random(80));
FindNormalRandoms;
end;
end;
procedure WithdrawHerbs;// ---Withdraws Herbs from open bank---
var
x, y: integer;
begin
if OpenBank(Players[CurrentPlayer].Loc, False, False) then
begin
MouseBox(45, 100, 60, 113, 3);
if WaitUptext('rimy', 4000) then
begin
GetMousePos(x, y);
Mouse(x, y, 0, 0, false);
Wait(380 + random(50));
ChooseOption('raw-All');
end;
end;
CloseBank;
Wait(750 + random(200));
end;
procedure WithdrawBank; // ---Opens the bank to withdraw---
var
Tr, Bo: integer;
begin
if BankScreen = false then
begin
AntiRandoms;
writeln('Trying to open bank..');
MakeCompass('N');
SetAngle(true);
OpenBankFast(WhichBank);
end;
repeat
wait(10);
Tr := Tr +1;
until (Tr = 1000) or (BankScreen = true);
if BankScreen = True then
begin
Writeln('opened bank successfully');
wait(1000 + random(1000));
if BankScreen then
begin
Wait(200 + Random(300));
FixBank;
if (not(InvEmpty)) then
DepositAll;
end;
ActivateClient;
WithdrawHerbs;
end else
if BankScreen = False then
begin
Bo := Bo +1;
writeln('Tried opening bank ' + IntToStr(Bo) + ' Times');
if (Bo >= 5) then
begin
writeln('Opening bank failed, logging out.');
//Logout;
NextPlayer(false);
FreeAllDTMs;
TerminateScript;
end;
end;
CloseBank;
end;
procedure SetupScript;
begin
SetupSRL;
DeclarePlayers;
StartSmart;
ActivateClient;
LoginPlayer;
end;
begin;
SetupScript;
repeat
ActivateClient;
WithdrawBank;
Clean;
until AllPlayersInactive;
FreeAllDTMs;
end.