PDA

View Full Version : ULTIMATE BoneFinderBurier ver.4.0



Hiya
01-16-2007, 08:06 PM
UPDATED - VER.4.1 NOW AVAILIABLE (IN TEXTAREA AND SIDEBAR!!!) LESS BAN!!!
VER.4.0 STILL DOWNLOADABLE FROM SIDEBAR!!!

This is my ULTIMATE BonePickerBurier which i hope you will enjoy ;) ;) . I was unhappy with the quality of the other bone prayer scripts - didn't work; slow; no randoms etc. so here i have brought together the power of SRL with my own bone picker burier!

I manage to go from prayer lvl 21 - 43 in 5days (including time for tweaking of script ect.) and can now do all the 'Protect from ...' spells which helps so much in wilderness :D :D . I once manged to leave it on overnight for 11hrs and it worked!!!!!! If you are going to do a all night bonanza make sure you do it on a world where it is daytime when you are asleep - e.g. Australia (I live in Europe somewhere....).

Go to the chickenyard inbetween Varrok and Lumbridge. It is opposite cowfields and is next ot a waterwheel. There is the start place. You can enable it for Big bones in skeleton yard for wildy by:

//Changing line 333 to:
if((IsTextAt2(9,9,'Take Big Bones',120))or(IsTextAt2(9,9,'Take Bones',120))) then begin

//Changing line 354 to:
else if((count > chickwait)and(attackchickens=1)and(IsTextAt2(9,9,' Attack Skeleton',120)))then begin


It will now pick up bones, big bones and attack skeletons - set 'attackchickens=0;' to not attack skeletons.

REQUIRES:
1. SCAR 2.03 (go Kaitnieks!!)
2. SRL (Recommended not required. Go anyway!!!!!!)
3. A Brain

******* Use on high brightness, high detail, 32-bit color *******

Please comment on it a PM me the bugs.

N.B. My name is Crandom on other Scar Script forums in which i did my alphas and betas but is Hiya on here - that is why it is by Crandom (aka Hiya).

Here I Present it to you:

program BoneFinderBurier;
{.include SRL/SRL.scar}
{.include srl\srl\extended\xantiban.scar}

///////////////////////////////////////////////////////////////////////////
// Ultimate BoneFinderBurier ver. 4.1 //
// by //
// ___ ___ ___ ___ //
// / | \ /\ |\ | | \ / \ |\ /| aka: //
//| |___/ /__\ | \ | | \ | | | \ / | | |---\ / /\ //
// \ |\ / \ | \ | | / \ / | \ / | |--| | \/ /__\ //
// --- | \ / \ | \| |---/ --- | \/ | | |--- | / \//
// //
//**COMMENT OUT SRL INCLUDES IF NOT USING SRL (ADD // TO FRONT OF LINE)**//
// //
// ******* !!!!!DONT EDIT/CHANGE/STEAL WITHOUT PERMISSION!!!!! ******* // //
// //
//INSTRUCTIONS: //
// 1. Setup the constants below. I spent ages configuring these for //
// optimal performance, but change them if you have to. //
// 2. Go to the chickenyard inbetween Varrok and Lumbridge. It is opisite//
// cowfields and is next ot a waterwheel. //
// 3. Start script (remember to drage crosshair) //
// 4. Leave for a long time. It does around ~1000exp 1.25hrs on a good //
// day (when people kill chickens and leave bones). //
// 5. Don't leave for more than 4hrs!!! JAGEX HAVE BANNING TECHNIQUES!!! //
// I suggest you check it evry 15mins or so (see BUGS). //
// 6. Good Scripting and READ ON FIRST!!!! //
// //
//FEATURES: //
// 1. All SRL anti-randoms. //
// 2. Anti-Ban: =Autotalker. =Rotates frequently =Logs out back in again.//
// //
//BUGS: //
// 1. Depends on SRL randoms (ie SCAPERUNE SCAPERUNE!!!!!!! AHHHHHHH!!!) //
// 2. You will hate anyone wearing anything white (Script thinks its a //
// bone - waste time on there white heads //
// 3. Once i was locked in room next to waterwheel + random attacked. //
// Guy locked me in and it tried to run south. Only time i've died. //
// NB. PM if find anymore. Solutions also useful!!! //
// //
//VERSIONS: //
// 1.0: First version; no rotate; no feather; just bones; very buggy. //
// 1.1: Fixed headstick bug. //
// 1.2: Added Rotate. //
// 1.3: Added Feather and Chicken Support //
// 1.4: Added SSi2 Randoms //
// 1.5: Private alpha. //
// 2.0: Had evil [Runtime Errors]s //
// 2.1: Discovered SSi2 causing this. Removed random support. //
// 2.2: LoginChecker + better boneburier. //
// 2.3: Public alpha //
// 3.0: Added SRL! YAY! [Runtime error]s gone!!! //
// 3.1: Public Beta 2; added loadloggerouter. //
// 4.0: Last one!!! Public Release. //
// 4.1: This One!!! Public Release 2. clickmouse to Mouse + MMouse, //
// slower mouse speed, more inclusive SRL functions. (thanks to 'the//
// scar noob', 'stupedspan' and 'amned92') //
// //
///////////////////////////////////////////////////////////////////////////

//SETUP |
//SETUP |
//SETUP \|/

const
bonecolor = 14277086; //14211293; //Alternative bone color
attackchickens = 1; //Attack Chickens? RECOMMENDED
takefeathers = 1; //Take Feathers? You can sell these for $$$ and reveal bones.
chickwait = 17; //how many counts before attacking chickens. Lower if less people killing chickens + leaving bones
rotatewait = 50; //how many counts before rotating view (ADVANCED)
logoutafter = 6; //how many loads to log out after
logoutminswait = 2; //how many minutes to wait before logging in again.
speedofmouse = 6; //speed to move mouse - too low = detectable = BAN!!!
randomchateverymins = 3; //mins between each random piece of speech.
RunDir = 'S'; //which way to run from Attacking Randoms
uname = 'username'; //Username (ONLY NEEDED IF NOT USING SRL!!!!! LOOK DOWN FOR SRL LOGIN!!!!)
pword = 'password'; //Password (ONLY NEEDED IF NOT USING SRL!!!!! LOOK DOWN FOR SRL LOGIN!!!!)
useSRLrandoms = 1; //Use SRL. RECOMMENDED (0 may cause [Runtime error]s)
debug = 0; //for my use really...

//MORE SRL SETUP BELOW!!!!!!!! |
//MORE SRL SETUP BELOW!!!!!!!! |
//MORE SRL SETUP BELOW!!!!!!!! \|/

Procedure DeclarePlayers;
begin

HowManyPlayers := 6;
NumberOfPlayers( HowManyPlayers );
CurrentPlayer := 0;

Players[0].Name := 'UserName'; //If there's only one player use
Players[0].Pass := 'Password'; //only these 'slots'
Players[0].Nick := 'Nickname'; //yes these
Players[0].Active := True; //dont change this

Players[1].Name := 'UserName';
Players[1].Pass := 'Password';
Players[1].Nick := 'Nickname';
Players[1].Active := False;

Players[2].Name := 'UserName';
Players[2].Pass := 'Password';
Players[2].Nick := 'Nickname';
Players[2].Active := False;

Players[3].Name := 'UserName';
Players[3].Pass := 'Password';
Players[3].Nick := 'Nickname';
Players[3].Active := False;
end;

// END SETUP!!!!! /|\
// END SETUP!!!!! / | \
// END SETUP!!!!! / | \
// END SETUP!!!!! |
// END SETUP!!!!! |
// END SETUP!!!!! |
// END SETUP!!!!! |
// END SETUP!!!!! |
// END SETUP!!!!! |
// END SETUP!!!!! |
// END SETUP!!!!! |

var rx,ry,count,randco,bonecount,buried,loadcount,
temp,randcount:Integer;
boola,pickedbone:Boolean;

Function InFight() : Boolean;
Var
a, b : Integer;
Begin
If(findcolorspiral(a, b, 16728128, 215, 115, 330, 185))
Or(findcolorspiral(a, b, 192, 215, 115, 330, 185))Then
result:= true;
End;

procedure RotateNorthRune;
begin
if(not(getcolor(566,15)=723587))then begin
boola := false;
if(findcolorspiraltolerance(rx,ry,920735,549,10,56 2,10,4))then begin
ry := 39;
end
else if(findcolorspiraltolerance(rx,ry,920735,572,4,583 ,34,4))then begin
ry := 37;
end
else ry := 37;
repeat
KeyDown(ry); //
Sleep(100); //
KeyUp(ry);
if(getcolor(566,15)=723587)then boola:=true;
until(boola = true);
end;
end;


procedure CheckRun;
begin
Mouse(683,485,3,3,true);
wait(200);
if(GetColor(628,424)=2304814)then begin
Writeln('Run Off; Changing To On.');
Mouse(648,431,3,3,true);
wait(300);
end;
Mouse(650,190,3,3,true);
end;

procedure LogOutRune;
begin
Mouse(645,486,4,4,true);
wait(200+random(200)+random(213));
Mouse(644,376,4,4,true);
boola:= false;
repeat
if((getcolor(276,128)=212028)and(getcolor(392,293) =723723)) then begin
boola := true;
end;
wait(200+random(234));
until(boola = true);
end;

procedure LoginRune;
begin
Mouse(461,292,3,3,true);
wait(1000+random(300));
TypeSend(uname);
wait(1000+random(300));
TypeSend(chr(13));
wait(1000+random(300));
TypeSend(pword);
wait(1000+random(300));
TypeSend(chr(13));
Mouse(303,322,3,3,true);
wait(2000);
repeat
wait(200+random(100));
until(getcolor(370,333)=16777215);
Mouse(400,340,3,3,true);
wait(2000+random(100));
CheckRun;
end;

procedure LoginChecker;
begin
boola:= false;
repeat
if((getcolor(276,128)=212028)and(getcolor(392,293) =723723)) then begin
WriteLn('Logging in as '+uname);
LoginRune;
end
else begin
boola:= true;
end;
until(boola = true);
end;

/////////////////////////////////
Procedure Randoms; //
Begin //
FindNormalRandoms; //
wait(10) //
UseBoxSolver := True //
wait(10) //
UseCerterSolver := True //
wait(10) //
UseSandwichSolver :=True //
FindMaze; //
wait(10) //
Solvepinball; //
Wait(10) //
if (FindFight) then //
begin //
if (useSRLrandoms = 1)then //
begin PerfectNorth; end //
else begin RotateNorthRune;//
end; //
RunAwayDirection(RunDir); //
Wait(8500 + random(3500));//
RunBack; //
randcount:=randcount+1; //
end; //
Wait(10); //
FindTalk; //
end; //
/////////////////////////////////

////////////////////////////////////////////////////
Procedure emptybones; //
Begin //
CountItemColorTol(6776686,4) //
Repeat //
Randoms; //
ClickItemColorTol(6776686,4,false) //
ChooseOption(x,y,'Bury'); //
wait(1200+random(200)); //
buried:= buried+1; //
Until (CountItemColorTol(6776686,4)<1) //
End; //
//
////////////////////////////////////////////////////

procedure RotateRandom;
begin
rx:= random(4);
KeyDown(37+rx); //
Sleep(503 + Random(107) + Random(208)); //
KeyUp(37+rx);
boola:= false;
repeat
ry:= random(4);
if(ry > 1)then begin
if(not((ry - 2) = rx))then begin
boola:= true;
end;
end
else if(ry < 2)then begin
if(not((ry + 2) = rx))then begin
boola:= true;
end;
end;
until(boola = true);
KeyDown(37+ry); //
Sleep(503 + Random(107) + Random(208)); //
KeyUp(37+ry);
end;

procedure Bury;
begin
HighestAngle;
loadcount:= loadcount+1;
Status('Picked ' +inttostr(bonecount)+ ' Bones (' + inttostr(Round(bonecount*4.5)) + ' exp) [Burying Bones] Count: ' + inttostr(count)+' Loads: '+inttostr(loadcount));
emptybones;
WriteLn('Buried '+inttostr(buried)+' bones');
if (loadcount = logoutafter)then begin
LogOutRune;
count:= 0;
repeat
count := count+1;
Status('Logging in: ' + inttostr((logoutminswait * 60) - count + 1));
wait(1000);
until((logoutminswait * 60) < count);
if(useSRLrandoms = 1)then begin
If Not LoggedIn then
LoginPlayer;
Randoms;
SRLRandomsReport;
end
else begin
LoginChecker;
end;
loadcount:= 0;
end;

end; {Bury}

procedure ChangeChat;
begin;
repeat
Mouse(55,490,3,3,true);
wait(200);
until(getcolor(49,488) = 65280);
end;

procedure FindBoneColors;
begin
boola := false;
pickedbone := false;
repeat
Status('Picked ' +inttostr(bonecount)+ ' Bones (' + inttostr(bonecount*5) + ' exp) [Finding Bones] Count: ' + inttostr(count)+' Loads: '+inttostr(loadcount));
if(count > rotatewait)then begin
RotateRandom;
count:= 0;
end
else if(FindColorSpiralTolerance(rx,ry,bonecolor,3,3,51 7,338,2))then begin

if(IsTextAt2(9,9,'Take Bones',120)) then begin //see if this white thing is a bone
if(debug = 1)then Writeln('Found Bone: ' + inttostr(rx) + ' ' + inttostr(ry));
boola := true;
pickedbone:=true;
count:= 0;
Mouse(rx,ry,3,3,true); //pickup the bone
wait(100+random(100));
if(IsChatMessage('I can'))then begin
RotateRandom;
RandomChat;
end
else bonecount:= bonecount+1;
end
else if((takefeathers=1)and(IsTextAt2(9,9,'Take Feather',120)))then begin
if(debug = 1)then Writeln('Found Feather: ' + inttostr(rx) + ' ' + inttostr(ry));
Mouse(rx,ry,3,3,true);
wait(2000+random(100));
end
MMouse(rx,ry,3,3); //movemouse to see position of white obj on screen
end

else if((count > chickwait)and(attackchickens=1)and(IsTextAt2(9,9,' Attack Chicken',120)))then begin
if(not(InFight()))then begin
if(debug = 1)then Writeln('Found Chicken: ' + inttostr(rx) + ' ' + inttostr(ry));
Mouse(rx,ry,3,3,true);
wait(100+random(100));
end
else if(debug = 1)then WriteLn('Wanted To Attack Chicken, but In Fight');
end;

count:= count+1;
randco:= randco+1;

if(useSRLrandoms = 1)then begin
If Not LoggedIn then
LoginPlayer;
if((randco = 20)or(randco = 40))then begin
randoms;
randco:=0;
end;
SRLRandomsReport;
end
else begin
LoginChecker;
end;
wait(100+random(100)); //Change if you want but my test show <100ms there is not enough time to read font
until(boola);
RandomChatEvery(randomchateverymins);
if(getcolor(630,178)=5531511)then begin
Mouse(650,190,3,3,true);
end;
if(InvFull)then begin
Bury;
IF (useSRLrandoms = 1)then begin
setrun(true); end
else begin CheckRun; end;
FindBoneColors;
end
else begin
boola:= false;
if(pickedbone = true)then begin
temp:=0;
repeat
if(not(FindColor(rx,ry,255,570,5,725,160)))then begin
boola:= true;
end
else if(temp > 9)then boola:=true;
temp:=temp+1;
wait(700+random(200));
until(boola = true);
end;
FindBoneColors;
end;

end; {FindBoneColors}

begin

writeln('BoneFinderBurier by:');
writeln(' ___ ___ ___ ___ ');
writeln(' / | \ /\ |\ | | \ / \ |\ /| aka:');
writeln('| |___/ /__\ | \ | | \ | | | \ / | | |---\ / /\ ');
writeln(' \ |\ / \ | \ | | / \ / | \ / | |--| | \/ /__\ ');
writeln(' --- | \ / \ | \| |---/ --- | \/ | | |--- | / \ ');

LoadChars('');
DeclarePlayers;
if(useSRLrandoms = 1)then begin
SetupSRL;
Mousespeed:= speedofmouse;
If Not LoggedIn then
LoginPlayer;
Randoms;
SRLRandomsReport;
end
else begin
LoginChecker;
end;
DisguiseScar('Norton AntiVirus - Scan');
Mouse(96,443,3,3,true);
wait(10);
RandomChatEvery(randomchateverymins);
count:= 0;
bonecount:= 0;
randco:=0;
buried:= 0;
loadcount:=0;
randcount:=0;
CheckRun;
FindBoneColors;

end.

stupedspam
01-16-2007, 09:19 PM
awsome script... woot and a first post on this cool looking script ill test and give you a report!!..ok i tested it ... and the mose moves way too fast (detectible) also why is there 2 places to put your username and password. I couldn't rune for more than 6 sec because of the mouse speed get that worked out and it will be awsome.

amned92
01-16-2007, 10:22 PM
Not that I am criticizing you, I am trying to help. This script has a long way to go and never I mean NEVER use ClickMouse or MoveMouseSmooth, instead use MMouse to move and Mouse to click because these you can tell to click a certain place + a random number like 3 on x and y. I would recommend you change all ClickMouse, MoveMouse, and MoveMouseSmooth to MMouse or Mouse. If you need help with that contact me.

the scar noob
01-17-2007, 10:47 AM
1. why aren't you using SRL login?
2. checkrun, you can just use SetRun(True);
3. loginchecker >>> just use:

If(Not(Loggedin)) then
LoginPlayer;
4.
if (FindFight) then
begin
RotateNorthRune;
make it this:


HighestAngle;
PerfectNorth;

5.

ChooseOption(x,y,'Bury');
ChooseOption(x,y,'Drop'); >>> is it a burrier or a dropper?


if(FindColorSpiralTolerance(rx,ry,bonecolor,3,3,51 7,338,2))
use MSX1,MSY1,MSX2,MSY2 >>> Main Screen you also have got Main inventory, gues what's that...

were's the repeat ... until?
and

Logout;
NextPlayer(True);

EDIT: PLZ DON'T USE CLICKMOUSE, IT'S VERY DETECTBLE = BAN!

Hiya
01-17-2007, 09:15 PM
thanks for your comments - i am working on all of them now esp. clickmouse.

to the scar noob: i am using some of my own functions for logging in and stuff because you have the option to turn of SRL support (people in other forums were too noob and installed SRL wrong leading to the evil [Runtime Error]s of DEATH!). I will change it so if you have the const. useSRLrandoms = 1; then it will use those SRL functions instead of my own.

Again, Thanks.

EDIT: Updated Script for these (you have mentions in VERSIONS section) LOOK UP ^

pointer
01-18-2007, 05:12 PM
i will check it maybe its finnaly a good working bone picker and burier

pointer
01-18-2007, 05:25 PM
dude you have set your pass in the script

Boreas
01-18-2007, 05:32 PM
Wait do you mean 'you have to' or that he left it in there?


edit VVVV ah ok

Starblaster100
01-18-2007, 05:35 PM
Editted out

the scar noob
01-18-2007, 05:35 PM
line 338: else if(FindColorSpiralTolerance(rx,ry,bonecolor,3,3,51 7,338,2))then begin
plz i'm beggin you use the MSX1,MSY1,MSX2,MSY2 >>> main screen
MIX,MIY1,MIX2,MIY2 >>> main inventory > better because it only checks the color in inventory, but it's still your choise (you make it a little difficult:p)

It's a lot better, but i still prefer more SRL :)

Keep it up!

Hiya
01-18-2007, 07:29 PM
AHHHHHHH LEFT PASS + USERNAME!!!!! AHHHHHHHHHHHH
:duh: :duh: :duh: :duh: :duh:
Oh well, no one hacked my account (Thank God!!), i changed pass (phew!) and it was luckily the user that i was using only for devolping this script, in case i got banned and not my main so YAY!

Thanks moderator guy for changing it - i am in your debt (kind of; T&C apply).


to 'the scar noob': am i missing something or is it that these 'MSX1,MSY1,MSX2,MSY2' specify the bounds for the mian screen? I have done the same but used the constant integer for line 338 to specify the main playscreen area - surely it doesn't matter? Tell me if im wrong.

Thanks for comments!

Boreas
01-18-2007, 07:48 PM
No it doesn't really matter if they are the same/similar number, but others can see that it's looking in the main screen, or inventory, or chatbox etc.

the scar noob
01-18-2007, 08:15 PM
yea sorry guys, it's just easier like that, that's all (that was what i ment) :)