BazzBarrett
2008-08-15 14:39:02
Clay Softner and Bucket Filler!
All feedback good or bad is gladly exsepted and any problems/things i can do to improve i will do asap.
(and any good guides on how to add stat reports out there?)
V 1.1
1. Add FFlag(0) for walking
2. Used much better dtms for the roads
3. Improved standerds
4. Used ChooseOption instead of alot of mouse functions
5. It's now alot less likly to just walk into the anvil shop
V 1.2
1. More bug fixes
2. Even better DTM's
3. Neater
4. Faster Clay withdrawal
5. New inventory failsafe
//Notes:
//you must have all the clay and buckets(empty or full) to start with
//buckets and clay must be in the first 4 rows of your bank
//(A good idear is to have all Buckets and clay in a new tab)
//no bankpin (or already entered) i havent got a bank pin but the findbank
//function has 1 built in can any1 tell me if it works[please enter your
//under players[0].pin]).
//you need atleast a couple hundred buckets other wise your realy
//increasing the chance of a slight error
//please have your man standing next to the counter in varrock east
//bank and press run. (this defantly insent un stoppable i dont
//segest any more than 20-30 lodes (280-420 clay) to be left alone as it
//dont seem to like randoms.)
//
//Fill out lines 26-29!
program New;
{.include SRL/SRL.scar}
var
Fullbucket, Emptybucket, Clay: Integer;//DTMs
SoftClay, Road, road2 : Integer;//I like DTMs =P
X, Y, XX, YY, lodesdone, BBuckets : Integer;
const
LodesToDo = 72; //number of lodes to do (14 clay to a lode)
fountaincolor = 8870726; // the color of the water in the fountian
dofillbuckets = true; //weather to fill emptybuckets or not
BucketToDo = 24; //number of bucket lodes to do (28 buckets to a lode)
procedure DeclarePlayers;//not nessasery only used for findnormalrandoms;
begin
HowManyPlayers := 1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := 'aplayer123';
Players[0].Pass := '1234';
Players[0].Nick := 'p123';
Players[0].pin := '';
Players[0].Active := True;
end;
procedure checkrandoms;
begin
FindNormalRandoms;
FindNonInventoryRandoms;
end;
procedure setup;
begin
setupsrl;
Disguise('Windows Media Player');
ActivateClient;
declareplayers;
wait(1000);
makecompass('S');
makecompass('N');
lodesdone := 0
Fullbucket := DTMFromString('78DA63EC6360602862400153CB6C194480342' +
'310FF0702C6E940463A031A60442281740B116ADA804419013593' +
'804409AA8A96CA4AB87BC06ABA8144257E73000D7D0CE2');
Emptybucket := DTMFromString('78DA637CCAC0C090CF80025A33CD194480342' +
'310FF0702C6F740461A031A60442281F41D22D4DC0312A504D4BC' +
'05122504D480DC93835F0D00A2740D41');
Clay := DTMFromString('78DA639CC2C4C010CCC8800C26947B33B0026' +
'990E87F20609C0954E38DAA06220B2381F40CA09A30026A2610A1' +
'A60FA82610BF1A00050809EF');
SoftClay := DTMFromString('78DA639CCAC4C010C0C8800CE25C381852803' +
'448F43F10302E00AAF142550391859140BA17A8C687809A6EA09A' +
'70026AA603D5441350331FA8260CBF1A004D3D0A9F');
road := DTMFromString('78DA630C666260D061400155E5050C5C409A1' +
'188FF03016312508D26A61A06A81A301D0854638DAAA6A52C0455' +
'8D33508D067E7300EF8B0B89');
road2 := DTMFromString('78DA635CCBC4C090CF8002AACA0B18B880342' +
'310FF0702C62EFC6A4080713B76350CC86AA603D5641250B31EA8' +
'260A554D729831AA9A6EA09A5654352D6521286A004E33123B');
checkrandoms;
end;
procedure report;
var
timetm, timets : Integer;
begin
writeln('############################################');
writeln('BazzBarretts Soft Clay Maker');
writeln('Lodes done = ' + IntToStr(lodesdone));
writeln('Soft Clay made = ' + IntToStr(lodesdone*14));
writeln('Buckets filled = ' + IntToStr(BBuckets*28));
timetm := (GetTimeRunning/60000);
timets := (GetTimeRunning-(timetm*60000))/1000
writeln('Time taken = ' + IntToStr(timetm) + ' Minuets And ' + IntToStr(timets)+ ' Secounds');
writeln('Money Earnt = ~' + IntToStr(lodesdone*900) + ' Gp!');
writeln('############################################');
end;
procedure scriptterminate;
begin
freedtm(Fullbucket);
freedtm(Emptybucket);
freedtm(Clay);
freedtm(SoftClay);
freedtm(road);
freedtm(road2);
report;
end;
procedure closebank2;
begin
if bankscreen then
begin
mouse(488, 35, 3, 4, true);
checkrandoms;
end;
end;
procedure bankclay;
begin
if not loggedin then terminatescript;
if not bankscreen then FindBank('veb');
if finddtm(SoftClay, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 0, 0, False);
ChooseOption('ll')
end;
if finddtm(Emptybucket, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Mouse(x, y, 0, 0, False);
ChooseOption('ll')
end;
checkrandoms;
if not InvEmpty then DepositAll;
end;
procedure withdrawclay;
begin
if not loggedin then terminatescript;
if not bankscreen then FindBank('veb');
if finddtm(clay, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
mouse(x, y, 3, 3, false);
if chooseoption('14') then else
begin
mouse(x, y, 3, 3, false);
ChooseOption('w-X');
wait(300+random(200));
typesend('14');
end;
end;
if finddtm(Fullbucket, x, y, MSX1, MSY1, MSX2, MSY2) then
begin
mouse(x, y, 3, 3, false);
ChooseOption('ll')
end;
checkrandoms;
end;
procedure Fillbuckets; forward;
procedure MakeSoftClay;
begin
if not loggedin then terminatescript;
if finddtm(Fullbucket, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
mouse(x, y, 3, 3, true);
if finddtm(Clay, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
mouse(x, y, 3, 3, true);
wait(100+random(50));
mouse(255, 415, 5, 5, false);
if ChooseOption('ll') then
begin
wait(18000+random(2000));
inc(lodesdone);
end;
end else
begin
writeln('couldent find clay logging out');
terminatescript;
end;
end else
begin
writeln('couldent find any more buckets making more');
FillBuckets;
end;
end;
procedure WalkToFountain;
begin
MakeCompass('N');
if finddtm(road, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
mouse(x, y, 0, 0, true);
FFlag(0);
if FindSymbol(x, y, 'water') then
begin
mouse(x, y, 0, 0, true);
FFlag(0);
end else
begin
writeln('couldent find fountain, guessing insted.');
mouse(588, 53, 4, 4, true);
FFlag(0);
end;
end else
begin
mouse(584, 38, 0, 0, true);
FFlag(0);
if FindSymbol(x, y, 'water') then
begin
mouse(x, y, 0, 0, true);
fflag(0);
end else
begin
writeln('couldent find fountain, assuming your on top of it.');
exit;
end;
end;
end;
procedure FillFromFountain;
begin
wait(1500+random(500));
if not findcolor(x, y, fountaincolor, MSX1, MSY1, MSX2, MSY2) then
begin
wait(3000+random(2000));
if not findcolor(x, y, fountaincolor, MSX1, MSY1, MSX2, MSY2) then
begin
writeln('couldent fill buckets going back 2 bank');
exit;
end;
end;
if findcolor(x, y, fountaincolor, MSX1, MSY1, MSX2, MSY2) then
begin
if finddtm(emptyBucket, xx, yy, MIX1, MIY1, MIX2, MIY2) then
begin
mouse(xx, yy, 3, 3, true);
mouse(x, y, 0, 0, true);
wait(19000+random(2000));
end else writeln('no buckets going back to bank');
end;
end;
procedure WalkToBank;
begin
if finddtm(road2, x, y, MMX1, MMY1, MMX2, MMY2) then
begin
mouse(x, y, 2, 2, true);
wait(3000);
FFlag(0);
end else
begin
writeln('couldent find road guessing');
mouse(677, 111, 3, 3, true);
wait(3000);
FFlag(0);
end;
end;
procedure bankbuckets;
begin
if finddtm(FullBucket, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
mouse(x, y, 3, 3, false);
ChooseOption('ll');
end else
begin
writeln('couldent bank buckets ammusing theres 1 in secound slot');
deposit(2, 2, true);
end;
if not InvEmpty then DepositAll;
end;
procedure FillBuckets;
begin
if dofillbuckets then
begin
if not bankscreen then findbank('veb');
if not InvEmpty then DepositAll;
while finddtm(emptybucket, x, y, MSX1, MSY1, MSX2, MSY2) and (BucketToDo > BBuckets) Do
begin
mouse(x, y, 3, 3, false);
ChooseOption('ll');
closebank2;
WalkToFountain;
FillFromFountain;
WalkToBank;
findbank('veb');
wait(100+random(200));
bankbuckets;
inc(BBuckets);
wait(100+random(200));
end;
writeln('No more empty buckets! started making soft clay!');
end;
end;
begin
setup;
FillBuckets;
repeat
if not bankscreen then findbank('veb');
bankclay;
withdrawclay;
closebank2;
MakeSoftClay;
until(LodesDone = LodesToDo);
end. Proggy's
My First long(ish) proggy ran for 48 mins with no errors (exsept an instant of lag witch is now covered in the new failsafe but all it did was make my script go and make more buckets =\)
############################################
BazzBarretts Soft Clay Maker
Lodes done = 55
Soft Clay made = 770
Buckets filled = 392
Time taken = 47 Minuets And 56 Secounds
Money Earnt = ~49500 Gp!
############################################