rj
2013-01-23 21:17:25
I now present to you bone collector + buryer. By defualt the script looks for bones and when the inventory in full it buries them. If it cannot find any bones it clicks within the red square on the minimap shown here:

Start within the blue area.
Brightness:

Script:

Start within the blue area.
Brightness:

Script:
program BoneCollecter;
{$i srl/srl.simba}
var
akebone, Bones, Buried, Taken, XpGained: Integer;
BuryAmount, Status: string;
procedure ClickMap;
var
DTM_SPOT: Integer;
begin
DTM_SPOT := DTMFromString('mWAAAAHicY2FgYGhlYmDoBuJGIK4F4mygWAYQpwFxNBDnOkqCsaujIEOYkxyDIFAMGTOiYRAAAJF8BtI=');
ClearDebug;
status := ('Re-locating');
Writeln('*******************************');
Writeln('RJJ95 Bone Collector + and AutoBury');
Writeln('Status:' + Status + '');
Writeln('Bones Buried:' + IntToStr(Buried) + '');
Writeln('Bones Picked up:' + IntToStr(Taken) + '');
Writeln('XP Gained:' + IntToStr(XpGained) + '');
WriteLn('Goal:' + '[' + BuryAmount + ']' + '|' + IntToStr(StrToInt(BuryAmount) - Buried) + ' Left to bury| [' + IntToStr(Round(Buried * 1.0 / StrToInt(BuryAmount) * 100)) + '%]');
Writeln('*******************************');
ClickDTMRotatedIn(DTM_SPOT, MMX1, MMY1, MMX2, MMY2, - Pi, Pi, Pi / 30, [], mouse_Left);
wait(randomrange(1000, 1200));
while (IsMoving) do
wait(randomrange(100, 250));
FreeDTM(DTM_SPOT);
end;
procedure BuryBones;
var
X, Y: Integer;
begin
MouseSpeed := 15;
if FindDTM(Bones, x, y, 568, 209, 733, 463) then
begin
ClearDebug;
status := ('Burying bones');
Writeln('*******************************');
Writeln('RJJ95 Bone Collector + and AutoBury');
Writeln('Bones Buried:' + IntToStr(Buried) + '');
Writeln('Bones Picked up:' + IntToStr(Taken) + '');
Writeln('XP Gained:' + IntToStr(XpGained) + '');
WriteLn('Goal:' + '[' + BuryAmount + ']' + '|' + IntToStr(StrToInt(BuryAmount) - Buried) + ' Left to bury| [' + IntToStr(Round(Buried * 1.0 / StrToInt(BuryAmount) * 100)) + '%]');
Writeln('*******************************');
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(XpGained, 7);
IncEx(Buried, 1);
wait(randomrange(700, 800));
repeat
BuryBones;
until (FindDTM(Bones, x, y, 568, 209, 733, 463) = false);
end;
end;
procedure CollectBones;
var
tmpCTS, l, r, X, Y: Integer;
BoneTPA: TPointArray;
begin
if FindDTM(Bones, x, y, 691, 424, 732, 458) then
begin
BuryBones;
end;
MouseSpeed := 15;
tmpCTS := GetToleranceSpeed;
SetColorToleranceSpeed(2);
SetToleranceSpeed2Modifiers(0.00, 0.21);
if FindColorsTolerance(BoneTPA, 12040128, 9, 6, 503, 328, 3) then
begin
SetColorToleranceSpeed(tmpCTS);
SetToleranceSpeed2Modifiers(0.02, 0.02);
L := High(BoneTPA) wait(randomrange(60, 100));
mmouse((BoneTPA[r].x), (BoneTPA[r].y), 2, 2);
wait(randomrange(100, 150));
clickmouse2(mouse_Right);
wait(randomrange(500, 750));
if FindBitmapToleranceIn(akebone, X, Y, 9, 6, 503, 328, 145) then
begin
ClearDebug;
status := ('Collecting bones');
Writeln('*******************************');
Writeln('RJJ95 Bone Collector + and AutoBury');
Writeln('Bones Buried:' + IntToStr(Buried) + '');
Writeln('Bones Picked up:' + IntToStr(Taken) + '');
Writeln('XP Gained:' + IntToStr(XpGained) + '');
WriteLn('Goal:' + '[' + BuryAmount + ']' + '|' + IntToStr(StrToInt(BuryAmount) - Buried) + ' Left to bury| [' + IntToStr(Round(Buried * 1.0 / StrToInt(BuryAmount) * 100)) + '%]');
Writeln('*******************************');
mmouse(x, y, 1, 1);
clickmouse2(mouse_Left);
IncEx(Taken, 1);
wait(randomrange(700, 800));
while (IsMoving) do
wait(randomrange(100, 250));
CollectBones;
end;
ClickMap;
end;
end;
procedure AskBury;
begin
if (InputQuery('How many bones would you like to bury?', 'Amount:', BuryAmount)) then
ClearDebug;
Writeln('ATTENTION!!');
Writeln('ATTENTION!!');
Writeln('ATTENTION!!');
wait(1500);
ClearDebug;
Writeln('If the script picks up anything else then bones then let me know');
Wait(2500);
Cleardebug;
Writeln('I will add a failsafe later for it to drop ashes+chefs hats if needed');
Wait(2500);
Cleardebug;
Writeln('And remember... HAPPY BOTTING!');
wait(3000);
CollectBones;
end;
begin
akebone := BitmapFromString(53, 6, 'meJytk0sOgDAIBTmaOy/g1jt5Yxr' + 'bhEz4GaOEBQXSTvuo6m37cS6fKxURzfIuSd8upcu0WKr6q60cCTHs' + 'CC4rQlLxxD6/Sk0/YYjH68cGK0W8t7HhpT32IA6vUtaRf8dLY4qeP' + 'k5UXGCNuH/FnKVUu2omm9l7/BqWr/Bc/wCTjsWw');
Bones := DTMFromString('mWAAAAHicY2FgYJjDxMAwGYiXAPEsIC5hZGAoYoTQVUB8aOdOBl9XV4YTBw4w5CQlMvAD9SBjRjQMAgBi/AsU');
AskBury;
repeat
SetScriptProp(SP_WriteTimeStamp, [True]);
MouseSpeed := 15;
CollectBones;
until (StrToInt(BuryAmount)) <= Buried;
FreeBitmap(akebone);
FreeDTM(Bones);
end.