Bosco_Humidifier
Welcome to my first script! Please follow the instructions below to enjoy fast magic xp and make some good money. 
Requirements
1. Access to the lunar magic spellbook and have it activated.
Instructions
1. Stand in Edgeville bank. (Or somewhere inside Edgeville will work)
2. Put the "Humidify" spell in action bar slot 1.
3. Equip the steam battlestaff.
4. Put some astral runes in backpack slot 1 and fill the remaining slots with the items you want to humidify (I have tested the script with empty vials and clays and both worked)
5. Save it to bank preset 1.
Features
1. Script can be started in any places with no banks nearby. It will teleport to Edgeville loadstone and walk to the Edgeville bank.
2. Include some antibans.
Points to note
1. Please fill in the line 16-22 before starting the script or do manual log in before starting.
2. Currently the script can only be terminated manually. Please make sure you have enough astral runes and items to be humidified. (Will do the modification later)
Upcoming updates
1. Use of SPF
2. Print profit/loss in progress report
Simba Code:
program Bosco_Humidifier;
{$DEFINE SMART}
{$I SRL-6/SRL.simba}
{$I SPS/lib/SPS-RS3.Simba}
var
LoadsDone, item_humid: integer;
humid_timer, openBank_timer : TTimeMarker;
bankSymbol,waterSymbol: TPoint;
procedure declarePlayers();
begin
setLength(players, 1);
with players[0] do
begin
loginName := 'Username'; //Please enter your username here.
password := 'password'; //Please enter your password here
isActive := true;
isMember := true;
end
currentPlayer := 0;
end;
Procedure doBankingStuff();
begin
openBank_timer.start();
Repeat
bankScreen.open(BANK_NPC_BLUE);
wait(randomRange(500,700));
Until (bankScreen.isOpen()) or (openBank_timer.getTime() > 5000);
if bankScreen.isOpen() then
bankScreen.clickButton(BANK_BUTTON_PRESET_1)
else if minimap.findSymbol(bankSymbol, MM_SYMBOL_BANK, minimap.getBounds()) then
begin
mouse(bankSymbol, MOUSE_LEFT);
wait(randomRange(7000,9000));
doBankingStuff();
end
else
begin
Repeat
lodestoneScreen.teleportTo(LOCATION_EDGEVILLE);
wait(randomRange(14500,16000));
Until (not isLoggedIn()) or minimap.findSymbol(waterSymbol, MM_SYMBOL_WATER, minimap.getBounds());
mouse(waterSymbol, MOUSE_LEFT);
wait(randomRange(4000,4500));
minimap.findSymbol(bankSymbol, MM_SYMBOL_BANK, minimap.getBounds());
mouse(bankSymbol, MOUSE_LEFT);
wait(randomRange(4000,4500));
doBankingStuff();
end;
end;
Procedure humidify();
begin
if bankscreen.close() then
begin
humid_timer.start()
Repeat
actionbar.clickSlot(1);
Until (tabBackpack.waitSlotPixelChange(28, 3000)) or (humid_timer.getTime() > 4000);
end;
Inc(LoadsDone);
end;
Procedure antiban();
begin
case randomRange(1,100) of
1..60: begin
writeLn('Not Feeling Tired...Keep Humidifying!');
wait(randomRange(0,100));
end;
61..70: begin
writeLn('Feeling Bored...Small afk');
sleepAndMoveMouse(1000+random(1000));
wait(randomRange(5000, 10000));
end;
71..95: begin
writeLn('Feeling Bored...Pick up mouse');
sleepAndMoveMouse(500 + random(5000));
pickUpMouse();
end;
96..100: begin
writeLn('Checking xp gained');
tabStats.open();
tabStats.getSkillLevel(SKILL_MAGIC);
tabBackpack.open();
end;
end;
end;
Procedure progressReport();
begin
item_humid := LoadsDone * 27;
writeLn('============================================');
writeLn('============================================');
writeLn('Time Run: ' + TimeRunning());
writeLn('Item Made: ' + intToStr(item_humid));
writeLn('============================================');
writeLn('============================================');
end;
{Main Loop}
begin
clearDebug();
smartEnableDrawing := true;
setupSRL();
declarePlayers();
if not isLoggedIn() then
begin
players[currentPlayer].login();
end;
exitTreasure();
minimap.setAngle(MM_DIRECTION_WEST);
mainScreen.setAngle(MS_ANGLE_HIGH);
Repeat
doBankingStuff();
humidify();
antiban();
progressReport();
Until (not isLoggedIn())
End.
Please let me know if you guys have any opinions on my script. Thank you.