NOt sure if this goes under a certain category, but I'd like to show you guys my attempt at some scripts. Usually what I did on a rainy day lol.
DaSupaFlaxa
SCAR Code:
program DaSupaFlaxa;
{.include SRl/SRL.scar}
function ReadyToPicky: boolean;
Var
tpa: TPointArray;
TPAA: T2DPointArray;
Bounds: TBox;
begin
if not loggedin then exit;
x:=MMCX; y:=MMCY:
FindColorsSpiralTolerance(x,y,tpa,11363426,MMX1,MMY1,MMX2,MMY2,5);
if GetArrayLength(tpa)>0 then
begin
TPAA:=SplitTPA(tpa,2);
SortATPASize(TPAA,true);
MiddleTPAEx(TPAA[0],x,y);
Result:=MFNF(x,y,1,1);
Exit;
end;
Result:=False;
end;
function ColorUpText(Types: String): Boolean;
begin
if not loggedin then exit;
case lowercase(Types) of
'yellow': Result:= CountColorTolerance(1108200,54,8,118,18,250)>=10;
'blue': Result:= CountColorTolerance(14408730,54,8,118,18,250)>=10;
'orange': Result:= CountColorTolerance(3636184,54,8,118,18,250)>=10;
'green': Result:= CountColorTolerance(1171738,54,8,118,18,250)>=10;
'white': Result:= CountColorTolerance(13816788,54,8,118,18,250)>=10;
end;
end;
procedure PickyTime: boolean;
Var
FlaxCol: TPointArray;
FFlaxCol: T2DPointArray;
Stable: Integer;
begin
if FlagPresent then
FLag;
SetAngle(false);
PerfectNorth;
x:=MSCX; y:=MSCY;
FindColorsSpiralTolerance(x,y,Flaxcol,{col},MSX1,MSY1,MSX2,MSY2,3);
if GetArrayLengtH(FlaxCol)>0 then
begin
SetArrayLength(flaxcol,Getarraylength(FlaxCol));
FFlaxCol:=TPAtoaTPA(FlaxCol,10);
for i:=High(FFlaxCol) downto 0 do
begin
MiddleTPAEx(FFlaxCol[i],x,y);
MMouse(x,y,2,2,false);
if isuptextmulticustom(['ick','lax','fl'])then
Break;
end;
Stable:=GetColor(x,y);
while SimilarColors(Stable,{col},3) or not FlagPresent or (not CountDTMInv(Flax)=27) do
begin
Mouse(x,y,1,1,true);
Wait(1000+random(2000));//didn't know quite how to deal with this part.
end;
if InvFull then
GoToBank;
if not InvFull then
PickyTime;
end;
if GetArrayLength(FlaxCol)<1then
begin
Writeln('Could not find flax color. Terminating.');
terminatescript;
end;
end;
procedure RemoveEquips; //0=head, 1= necklace, 2= top, 3=leg, 4=cape, 5=shield, 6=sword
var
TBA: TBoxArray;
begin
Gametab(5);
TBA:=[inttobox(636, 223, 650, 234), //head
inttobox(634, 257, 649, 273), //necklace
inttobox(634, 299, 646, 312),//top
inttobox(650, 352, 634, 340),//leg
inttobox(592, 261, 607, 273),//cape
inttobox(689, 300, 705, 308),//shield
inttobox(578, 292, 597, 323)];//sword
for i:=1 to (High(TBA)-random(3)+random(2))do
begin
x:=i+random(5)-random(5);
if not x>High(TBA)and x<1 then //randomize it a bit.
Swap(TBA[i],TBA[x]);
end;
for i:=0 to High(TBA)do
begin
x:= TBA[i].x1+TBA[i].x2/2+random(2)-random(2); //MidPoint Formula
y:= TBA[i].y1+TBA[i].y2/2+random(2)-random(2);
MMouse(x,y,1,1);
Wait(500+random(500));
if not ColorUpText('blue')then
begin
Mouse(x,y,1,1,true);
Wait(500+random(500));
while not ColorUpText('blue')do
Wait(10);
end;
end;
writeln('All Removed.');
end;
procedure ALaBanca: boolean;
begin
if not RadialWalk(blah)then
if not RadialWalk(Blah)then
if not RadialWalk(Blah)then
begin
Writeln('Not find color.');
Exit;
end;
//more radial walk
f_Fflag(5+random(4));
RadialRoadWalk(FindCammyRoadColor, blah);
f_fflag(5+random(4));
if not RadialWalk(LoadSymbolBitmapColor('bank'),blah)then
if not RadialWalk(GetSymbolColor(x,y,'bank'),blah)then
if FindSymbolIn(x,y,'bank',MMX1,MMY1,MMX2,MMY2)then
MFNF(x,y,1,1);
Else
begin
Writeln('Couldnt find symbol.');
terminatescript;
end;
writeln('In bank.');
end;
procedure PlaceAtBank;
begin
SyAcc:=SymbolAccuracy;
SymbolAccuracy:=0.5;
if not FindSymbol('bank',x,y)then
if not FindColorSpiralTolerance(x,y,GetSymbolBitmapColor('bank'),MMX1,MMY1,MMX2,MMY2,5)then
if not FindColorSpiralTolerance(x,y,GetSymbolcolor('bank'),MMX1,MMY1,MMX2,MMY2,5)then
begin
writeln('not find bank.');
terminatescript;
end;
MouseFlag(x,y,1,1);
GameTab(4);
FreakBank;
SymbolAccuracy:=SyAcc;
end;
function FreakBank: Boolean;
var
BColor1,BColor2: TPointArray;
DBColor: T2DPointArray;
MixColor: TPointArray;
BCols: TIntegerArray;
begin
CTS:=GetColorToleranceSpeed;
ColorToleranceSpeed(2);
{SetColorSpeed2Modifiers(.07, .27);}
BCols:=[1725541,2116441];
FindColorsSpiralTolerance(x,y,BColor1,Bcols[0],MSX1,MSY1,MSX2,MSY2,5);
FindColorsSpiralTolerance(x,y,BColor2,BCols[1],MSX1,MSY1,MSX2,MSY2,5);
MixColor:=CombineTPA(BColor1,Bcolor2);
DBColor:=SplitTPA(MixColor,5);
for i:=0 to high(DBColor)do
begin
MMouse(DBColor[i].x,DBColor[i].y,1,1);
Wait(200+random(200));
if isuptext('nk')then
Break;
if i=High(DBCOlor)then
begin
Writeln('Could not find bank.');
Result:=False;
Exit;
end;
end;
GetMousePos(x,y);
case random(20)of
1 to 18: begin
repeat
Mouse(x,y,1,1,false);
Wait(1000+random(200));
if ChooseOption('uick')then
Break;
until(False);
end;
19,20: begin
repeat
Mouse(x,y,1,1,true);
Wait(1000+random(200));
if ClickContinue then
break;
until(False);
ClickToContinue;
Wait(50+random(200));
CLicktocontinue;
end;
end;
if pinscreen then
InPin(PinNumber);
Result:=bankscreen;
ColorToleranceSpeed(CTS);
end;
function ToExitBank: boolean;
begin
if not RadialWalk(FindCammyRoadColor,75,100,-1,-1)then
if not RadialWalk(FindCammyRoadcolor,85,120,1,1)then
if not RadialWalk(FindCammYRoadColor,90,130,1,-1)then
begin
Result:=False
Exit;
end;
Writeln('Outside.');
Result:=True;
end;
function FindCammyRoadColor: Integer;//based on one of wizzy's cammy road color functions
var
CColor: TPointArray;
CCColor: T2DPointArray;
begin
FindColorsTolerance(CColor,FindRoadColor,MMX1,MMy1,MMX2,MMy2,5);
CCColor:=TPAtoATPA(CColor,2);
SortATPASize(CCColor,true);
if getarraylength(cccolor)>0 then
Result:=GetColor(CCColor[0][0].x,CCColor[0][0].y);
Else
Result:=FindRoadColor;
end;
function HeyHoToTheFlaxyOh;
var
FColor1,FColor2: TPointArray;
MFColor: TPointArray;
FFColor: T2dPointArray;
begin
FirstCol:=12546160; SecondCol:={col};
FindColorsSpiralTolerance(x,y,FColor1,FirstCol,MMX1,MMY1,MMX2,MMY2,5);
FindColorsSPiralTolerance(x,y,FColor2,SecondCol,MMX1,MMY1,MMX2,MMY2,5);
MFCOlor:=CombineTPA(FColor1,FColor2);
FFColor:=TPAtoATPAEx(MFColor,3,3);
if GetArrayLength(FFColor)>0 then
begin
SortATPASize(FFColor,True);
for i:=0 to High(FFColor[0])do
begin
if FFColor[0][i]=FirstCol then
Break;
end;
MFNF(FFcolor[0][i].x,FFColor[0][i].y,1,1);
F_fflag(5+random(10));
Result:=True;
end;
while not Result do
begin
if RadialWalk(12546160,90,180,70,-1,-1)then
Result:=True;
f_FFlag(5+random(10));
end;
end;
function CountDTMInv(DTM: integer): Integer;
Var
Slot: Integer;
DBox: TBox;
begin
if not logged in then exit;
for i:=1 to 28 do
begin
dbox:=invbox(slot);
if FindDTM(DTM,x,y,slot.x1,slot.y1,slot.x2,slot.y2)then
Inc(result);
end;
end;
FreaksMiner
SCAR Code:
program MineNBank;
{.include SRL/SRL.scar}
{.include SRL/SRL/skill/mining.scar}
const
ColorPick=03482034;//Color of Pick Head When Dropped
var
Pick: Array [0..3]of Integer;
Iron: Integer;
procedure DeclareDTMS;//Taken From Mining.scar. Thanks =)
begin
Pick[0] := BitmapFromString(11, 6, 'z78DA73730301038A811' + //broken
'B55CDA18569B800E5F662EA722311407401000F035515');
Pick[1] := BitmapFromString(14, 26, 'z78DA3330A014B82' + //handle
'101032A99865F8412D3069B99F8750D0633E9E9C2C11F86A32E1C' +
'6C2E1CFC7979D48523A116A0BC061C2A66D2A2DE07009D42B460');
Pick[2] := BitmapFromString(10, 7, 'z78DA33300001371CC0' + //head
'000720460D2E5D986CE27591AA973CF5D435C18D02003101000D7' +
'F5A19');
Iron := DTMFromString('78DA6314606060106140019E7A4A609A11CA6' +
'704C9B332A001465435B240829F801A2E20214F400DC81E6E026A' +
'7881040B7E3500DB51015E');
end;
function FRadialWalkEx(TheColor, StartRadial, EndRadial, Radius, Tol: Integer): boolean;
var
TPA: TPointArray;
begin
if RadialWalkEX(TPA, MMCX, MMCY, TheColor, Tol, StartRadial, EndRadial, Radius)then
begin
Mouse(TPA[0].x,TPA[0].y,1,1,true);
Wait(200+random(200)) //failsafe
Result:=f_FFlag(5+random(15));
Else
begin
Wait(200+random(200));
Exit;
end;
end;
function f_FFlag(Dist: Integer): Boolean;
begin
while FlagDistance>Distance do
begin
FTWait(1);
FindNormalRandoms;
end;
end;
function SearchAndFind: Boolean;
var
RDots: TPointArray;
RRDots: Array of TPointArray;
begin
FindColorsSpiralTolerance(MMCX,MMCY,RDots,395004,MSX1,MSY1,MSX2,MSY2,5);
SetLength(Rdots, GetArrayLength(Rdots));
RRDots:=TPAtoaTPA(RDOts,20);
if GetArrayLength(RRDots)>0 then
for d:=0 to High(RRDots)do
begin
SortATPASize(RRdots,true);
SortTPAFrom(RRDots[0],MiddleTPA(RDots[0]));
MouseFlag(RRDots[0][0].x,RRDots[0][0].y,1,1);
Result:=ClickPickhead;
end;
Result:=False;
end;
function ClickPickHead: Boolean;
var
DropCol1,DropCol2: TPointArray;
MDropCol: TPointArray;
DDropCol: T2DPointArray;
begin
FindColorsSpiralTolerance(MSCX,MSCY,DropCol1,{ColorPick},MSX1,MSY1,MSX2,MSY2,5);
FindColorsSpiralTolerance(MSCX,MSCy,DropCol2,{ColorPick},MSX1,MSY1,MSX2,MSY2,5);
MDropCol:=CombineTPA(DropCol1,DropCol2);
DDropCol:=TPAtoATPAEx(MDropCol,10,10);
if not GetArrayLength(DDropCol)>0 then
begin
Result:=False;
Exit;
end;
SortATPASize(DDropCol,True);
SortTPAFrom(DDRopCol[0],MiddleTPA(DDropCol[0]));
for i:=0 to High(DDropCol[0])do
begin
MMouse(DropCol[0][i].x,DropCol[0][i].y,1,1);
Wait(30+random(40));
if Pos('ick',getuptext)<>0 then
Break;
if I=High(DropCol)then
begin
Result:=False
Exit;
end;
end;
DropBox:=GetTPABOunds(DDRop[0]);
ME:=InvCount;
repeat
Inc(She);
MouseBox(ddrop[0].x1,ddrop[0].y1,ddrop[0].x2,ddrop[0].y2,1);
Wait(30+random(40));
if not InvCount=Me then
Break;
until(She=30);
if She=30 then
begin
Result:=False
Exit;
end;
Gametab(4);
FindPick;
if FindSymbol('mining',x,y)then
Result:=MouseFlag(x,y,1,1);
end;
procedure WaitWhile;
begin
GameTab(4);
if FindBitmapIn(Pick[0],x,y,MIX1,MIY1,MIX2,MIY2)then
Writeln('Found Broken PickAxe. Terminating Script.');
if FindBitmapIn(Pick[1],x,y,MIX1,MIY1,MIX2,MIY2)then
SearchAndFind;
FindNormalRandoms;
if FindFight then
begin
writeln('Found Fight Terminating Script!');
TerminateScript;
end;
end;
function CheckPick: Boolean;
begin
Gametab(6);
MouseBox(580,302,593,312,3);
if IsUpTextMultiCustom(['ick','Pick'])then
case lowercase(WhichPick) of
'rune': Result:= FindColorTolerance(x,y,5984829,580,302,593,312,5);
'adamant','addy': Result:=FindColorTolerance(x,y,4017469,580,302,593,312,5);
'mithril','mith': Result:=FindColorTolerance(x,y,5322551,580,302,593,312,5);
'steel': Result:=FindColorTolerance(x,y,6250343,580,302,593,312,5);
end;
if not Result then
begin
Writeln('Not right pick.');
Terminatescript;
end;
end;
procedure WalkToSite;
var
Mark: integer;
begin
MarkTime(Mark);
if not FRadialWalkEX(VarrockRoadColor,225,237,71)then
if not FRadialWalkEX(VarrockRoadColor,225,237,65)then
if not FRadialWalkEX(VarrockRoadColor,225,237,61)then
if not FRadialWalkEX(3958379,225,237,70)then
Exit;
FRadialWalkEx(3629410,180,210,70);
AntiRandom;
AntiBan;
FRadialWalkEx(4086864,160,185,70);
SymbolAccuracy:=0.5;
if FindSymbol('Mine')then
begin
Writeln('Found');
Exit;
Else
FRadialWalkEx(1848911,152,180,62);
if FindSymbol('Mine')then
begin
SymbolAccuracy:=Synow;
SetAngle(True);
repeat
Mouse(x,y,1,1);
Wait(30+random(75));
until(FlagPresent);
Else
begin
Writeln('Still cannot find the mining site.');
Terminatescript;
end;
end;
function CountDTMInInv(DTM: Integer): Integer;//by Freakymonkey
var
slot: integer;
IBox: Tbox;
begin
if not LoggedIn then Exit;
Gametab(4);
for slot:=1 to 28 do
begin
IBox:=InvBox(slot);
if FindDTM(DTM,x,y,IBox.x1,IBox.y1,IBox.x2,IBox.y2)then
Inc(Result);
end;
end;
function CountEmptySlot: Integer;
var
slot4: integer;
Empty: TBox;
begin
for i:=1 to 28 do
begin
Empty:=InvBox(Slot);
if not ExistItem(i)then
Inc(Result);
end;
end;
function FindRock(x,y:integer):boolean;
var
RockCol1,RockCol2: TPointArray;
MRockCol: TPointArray;
RRockCol: Array of TPointArray;
CTS: integer;
begin
CTS:=GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(.2,.2);
FindColorsSpiralTolerance(x,y,RockCol1,3096422,MSX1,MSY1,MSX2,MSY2,5);
FindColorsSpiralTolerance(x,y,RockCol2,{col},MSX1,MSY1,MSX2,MSY2,5);
MRockCol:=CombineTPA(RockCol2,RockCol);
RRockCol:=TPAtoATPAEx(MRockCol,10,10);
for i:=0 to High(RRockCol)do
begin
for d:=0 to High(RockCol[i])do
MiddleTPAEx(RockCol[i],x,y);
MMouse(x,y,1,1);
Wait(30+random(75));
if (Pos('ine',getuptext)<>0)then
begin
Writeln('Found Rock');
GetMousePos(x,y);
Result:=True;
Exit;
end;
Writeln('Didnt Find the Rock Using the Middles of the TPAS');
MMouse((RockCol[i])[d].x,(RockCol[i])[d].y,1,1);
Wait(30+random(40));
if (Pos('ine',rs_getuptext)<>0)then
begin
Writeln('FOund Rock');
GetMousePos(x,y);
Result:=True;
Exit;
end;
end;
Result:=False;
ColorToleranceSpeed(CTS);
end;
function FreakEscape: Boolean;
Escape,Mark,i: Integer;
Escapado,Return: TPointArray;
begin
Escape:= GetColor(MMCX-4,MMCY-4);
MarkTime(Mark);
FRadialWalkEx(Escapado,x,y,1848911,5,90,180);
MiddleTPAEx(Escapado,x,y);
repeat
MMouse(x,y,1,1);
Wait(20+random(30));
until(FlagPresent);
f_FFlag(5);
case Random(100) of
11,53: TypeSend('Dang gas....');
1,60: TypeSend('Man i hate when the rock gets gassy =p');
end;
repeat
Wait(10);
until TimeFromMark(Mark)>=12000;
FRadialWalkEx(Return,x,y,Escape,5,180,270);
end;
procedure ClickRock;
var
Mark2,TryMe: integer;
Change: Boolean
begin
for i:=0 to CountEmptySlot do//or replace 28 with amount of empty spaces in inv
begin
for d:=0 to 8 do
begin
if ChatsBlackText=[1 to 3] then
begin
Change:=True;
Writeln('Looking at black chat is unreliable');
break;
end;
Mouse(x,y,0,0);
Wait(30+random(75));
if (Pos('ing',BlackChatMessage)<>0)then
Break;
until(false);
if Change then
begin
repeat
Inc(TryMe);
Mouse(x,y,0,0,true);
Wait(20+random(30));
until(Tryme>=20);
end;
MarkTime(Mark2);
repeat
if FindGas(x,y)then
FreakEscape;
WhileMining;
if not (Pos('ed',BlackChatMessage)<>0)then
Break;
until(TimeFromMark(Mark2)>=12000);
if TimeFromMark(Mark2)>=12000 then
begin
Writeln('Someting is wrong terminating script.');
Terminatescript;
end;
Inc(Mined);
MakeCompass('n');
if InvFull then
Break;
end;
end;
procedure FindBank;
var
BankColor: TPointArray;
BCols: TIntegerArray;
begin
if not Loggedin then Exit;
MakeCompass('n');
BCols:=[1626085,12892858];
SyNow:=SymbolAccuracy;
SymbolAccuracy:=0.5;
if FindSymbol(x,y'bank')then
begin
SymbolAccuracy:=Synow;
repeat
Mouse(x,y,1,1,True);
wait(30+random(40));
until(FlagPresent);
Flag;
Else
begin
for i:=0 to High(Bcols)do
begin
FindColorsSpiralTolerance(x,y,BankColor,BCols[i],MMX1,MMY1,MMX2,MMY2,5);
if Length(BankColor)>=1 then
begin
repeat
Mouse(x,y,1,1,true);
Wait(30+random(40));
until(FlagPresent);
FFlag(5);
Exit;
Else
Begin
Writeln('Cannot Find Bank.');
Terminatescript;
end;
end;
end;
end.
procedure Depositing; //freakymonkey
var Cols,Cols2,MCols: TPointArray;
var 2DMCols: T2DPointArray;
var cx,cy,mx,my,Col,Col2: integer;
var slot2: TBox;
begin
if FindDTM(Bank,x,y,MSX1,MSY1,MSX2,MSY2)then //needa make a DTM of it
begin
Col:= GetColor(x,y);
Col2:=GetColor(x+3,y+3);
FindColorsSpiralTOlerance(cx,cy,Cols,Col,MSX1,MSY1,MSX2,MSY2,5);
FindColorsSpiralTolerance(mx,my,Cols2,Col2,MSX1,MSY1,MSX2,MSY2,5);
MCols:=CombineTPA(Cols,Cols2);
2DMCols:=TPAToATPA(Mcols,20);
for i:= 0 to High(2DMCols)do
begin
MiddleTPAEx(2dMcols[i],x,y);
wait(300+random(400));
if isuptext('ank')then
Break;
end;
repeat
Mouse(x,y,0,0,false);
Wait(300+random(400));
if ChooseOption('pen')then
Break;
until(false);
Wait(400+Random(300));
if BankScreen then
begin
Mined:=Mined+inttostr(CountDTMInInv(Iron));
for i:=1 to 28 do
begin
slot2:=InvBox(i);
if FindDTM(Iron,x,y,slot2.x1,slot2.y1,slot2.x2,slot2.y2)then
begin
Mouse(x,y,1,1,false);
wait(100+random(500));
if ChooseOption('All')then
Break;
end;
end;
CloseBank;
end;
end;
procedure WalkBack;
begin
Writeln('Walking Back');
Makecompass('n');
if not FRadialWalkEx(3563613,340,0,60,2)then
if not FRadialWalkEx(4021062,15,60,60,2)then
if not FRadialWalkEx(3431766,15,80,60,2)then
Exit;
if FRadialWalkEx(3629659 ,0,8,70,2)then
if FRadialWalkEx(3106407,2,22,73,2)then
if FRadialWalkEx(VarrockRoadColor,14,33,63,2)then
if FindSymbol('bank')then
begin
Mouse(x,y,1,1,true);
FFLag(5);
Else
begin
Writeln('Radial walk did not work.');
Terminatescript;
end;
MakeCompass('e');
MakeANgle(False);
Depositing;
end;
function NumPeopleObj(Color: integer): Integer;
WColor: TPointArray;
WWcolor: T2DPointArray;
L,LL: Integer;
begin
FindColorsSpiralTolerance(x,y,WColor,color,560,45,693,122,5);
L:=GetArrayLength(Wcolor);
if not L>2 then
begin
Result:=0;
Exit;
end;
WWColor:=SplitTPA(WColor,1);
LL:=GetArrayLength(WWColor);
Result:=LL;
end;
function REnergyLeft: Integer;
AllTed: String;
begin
AllTed:=TrimOthers(GetTextAtEx(640,442,5,SmallChars,False,True,0,0,39167,6,
True,tr_Digits);
if not Allted='' then
Result:=StrToInt(AllTed);
end;
begin
//Here's when I got bored :D
FreaksAlcher
Probably the worst out of mine lol but ironically i got the farthest...
SCAR Code:
program FreaksAlcher;
{.include SRL/SRL.scar}
{=================================================}
{================FREAKS ALCHER====================}
{1.What You're Alching Must Be In Note Form In Your Inventory!
{2.You Can Use Either Runes or Staves!
{3.Will Add An Auto Responder, Antiban, and AntiRandom Soon!}
var
x,y,LevelReq,LevelIncrease,LevelIncrease2,CR,CS: integer;
Alched, Note: integer;
{SRL ID AND PASS}
{=================================================}
const
SRLIdentification=''; //SRL Stats ID
SRLPass='';//SRL Stats Password
{=================================================}
Procedure DeclarePlayers;
begin
HowManyPlayers :=1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer:=0;
Players[0].Name :=''; //Username For Runescape
Players[0].Pass :=''; //Password For Runescape
Players[0].Nick :=''; //Three Words From Your Username
Players[0].Active:=True; //If This Player Is Active
Players[0].Booleans[0]:=True;//Use Staff?
Players[0].Booleans[1]:=False;//Use Runes?
Players[0].Integers[0]:=1000;//How Many To Alch Before Logging Out/Switching Chars?
Players[0].Integers[1]:=50;//Proggie Every How Many Alchings?
Players[0].Strings[0]:='Yew LongBow';//What To Alch?(Don't Really Have To Spell It Correctly.
//Add More Players If You Wish
Writeln('You are using '+inttostr(howmanyplayers)+' player[s]');
Writeln('Good Luck');
MouseSpeed:=25;//Adjust If You Want.
end;
{==========================================================================}
{***************Don't Touch Under This*************************************}
{***********Unless You Know What You're Doing!*****************************}
{==========================================================================}
function CheckLIncrease(skill:string): boolean;
var
Doit2:integer;
LevelIncrease2: integer;
begin
Doit2:=GetSkillInfo(skill,false);
if Doit2>levelincrease then
begin
Writeln('Gained a level. Congratz.');
Result:=True;
end else
Result:=False;
Doit2:=LevelIncrease2;
end;
function LevelCheck(skill:string):boolean; //freakymonkey
var
Doit: integer;
begin
Doit:=GetSkillInfo(skill,false);
if (Doit)<(LevelReq)then
begin
WriteLn('You dont have the appropriate level to craft this type of leather');
Result:=False;
TerminateScript;
end else
begin
Writeln('Your '+skill+' Level is '+IntToStr(GetSkillInfo(skill,false)));
LevelIncrease:=Doit;
Result:=True;
end;
end;
function ChangeMusic: boolean;
begin
Gametab(MusicGT);//change
MouseBox(coords);//change
GetMousePos(x,y);
if FindColorTolerance(x,y,color,coords,250)then//change
begin
Mouse(x,y,1,1,true);//
Result:=True;
end;
end;
function GetAlchColor: Boolean;
var
u: integer;
FOund: boolean;
begin
Gametab(6);
if GetColor(570,364)=849658 then
begin
Result:=True;
end else
begin
repeat
if getcolor(517+u,364+u)=71705 then
begin
Found:=True;
Result:=False;
end;
u:=u+1;
until(u=5)or (Found);
if u=5 then
begin
Result:=False;
end;
end;
function FindFireStaffUptext: boolean;
begin
if Players[0].Booleans[0]=True then
begin
Gametab(5);
if FindColorTolerance(x,y,1913317,571,290,604,310,250)then
begin
Mmouse(573,292,1,1);
if IsUpText('Staff of')then
begin
Writeln('The Staff of Fire is equiped');
Result:=True;
end;
end else
begin
Writeln('Staff of Fire is not equiped');
Result:=False;
end;
end;
end;
function FindFireRune(x,y: integer): boolean;
begin
if Players[0].Booleans[1] then
begin
GameTab(4);
if FindColorTolerance(x,y,1451433,MIX1, MIY1, MIX2, MIY2,5)then
begin
MMouse(x,y,1,1);
if isuptext('ire Rune')then
begin
Writeln('There are fire runes present');
GetMousePos(x,y);
Result:=True;
end else
begin
Writeln('We cannot find the fire runes');
Result:=False;
end;
end;
end;
end;
function FindNatureRune: boolean;
begin
Gametab(4);
if FindColorTOlerance(x,y,1543186,MIX1,MIY1,MIX2,MIY2,250)then
begin
MMouse(x,y,1,1);
if Isuptext('ature Rune')then
begin
Writeln('Found nature rune.');
Result:=True;
end else
result:=False;
end;
end;
function FindNotedItem(x,y:integer): boolean;
var
notecol: TpointArray;
CTS3,e: integer;
quick2: integer;
begin
CTS3:= GetColorToleranceSpeed;
ColorToleranceSpeed(2);
Gametab(4);
FindColorsSpiralTolerance(x,y,notecol,9944781,MIX1, MIY1, MIX2, MIY2,250);
for E:=0 to High(notecol)do
begin
Quick2:=GetArrayLength(notecol);
if quick2>=3 then
begin
Writeln('We have found the noted'+players[0].strings[0]+'!');
GetMousePos(x,y);
Result:=True;
end;
if Quick2<3 then
begin
WRiteln('We have not found the noted'+ players[0].strings[0]+'!');
Result:=False;
end;
end;
end;
function InAlchFindNoted: boolean;
begin
Note := DTMFromString('78DA6394606060E06540010B27E7806946289' +
'F5105480833A001465435AA40828F08351C04D4C8000976026A24' +
'8830871B48281050C309246409A8E1011242F8D500000ADC0329');
Gametab(4);
if FindDTM(Note,x,y,MIX1,MIY1,MIX2,MIY2)then
begin
Writeln('Noted '+players[0].strings[0]+' found!');
FreeDTM(Note);
Result:=True;
end else
begin
FreeDTM(note);
Result:=False;
end;
end;
procedure SetupRS; //Needs a lotta work!
var
Click,Click2,Click3 : boolean;
Click4,Click5: boolean;
begin
LevelReq:=55;
if not LoggedIn then
LoginPlayer;
Writeln('Logged in');
LevelCheck('Magic');
if Players[0].Booleans[0]=True then
begin
if FindStaffInMS then
Click:=True;
if FindFireStaffUpText then
Click2:=True;
end else
begin
Writeln('Cannot Find Fire Staff!');
nextplayer(false);
SetupRS;
end;
if Players[0].Booleans[1]=True then
begin
if FindFireRune(x,y) then
Click3:=True;
end else
begin
Writeln('Cannot Find Rune!');
nextplayer(false);
SetupRS;
end;
if FindNotedItem(x,y) then
begin
Click4:=True;
end else
begin
Writeln('Cannot Find noted Object.');
Logout;
nextplayer(false);
SetupRS;
end;
if GetAlchColor then
begin
Click5:=True;
end else
begin
Writeln('You either do not have the level or runes to perform this spell.');
nextplayer(false);
SetupRS;
end;
SetChat('off',2);
SetChat('on',3);
SetAngle(true);
if Click and Click2 and Click3 and Click4 and Click5 then
begin
Writeln('All is going smoothly so far.');
end else
begin
nextplayer(false);
SetupRS;
end;
end;
function CoinAmountPerAlch: integer;
begin
if CR=1 then
begin
Gametab(4);
CS:=CoinAmount('inventory');
Writeln('Recording the amount of money per alch.');
Result:=CS;
end;
end;
procedure Alch;
var
SX,SE,TR,g,IT2,ACOl: integer;
animatecol: tpointarray;
begin
If not InAlchFindNoted then
begin
Writeln('We have run out of things to alch.');
Writeln('Switching players.');
nextplayer(false);
end;
CheckLIncrease('Magic');
Gametab(6);
if CR=1 then
begin
IT2:=CoinAmountPerAlch;
WRiteln('You Get '+inttostr(IT2)+' gp per '+players[0].strings[0]);
end;
if CR=0 then
CR:=CR+1;
if GetAlchColor then
begin
repeat
SX:=SX+1;
MouseBox(558,353,580,369,1);
until(FIndColorTolerance(x,y,3424328,560,367,626,403,5))or (SX=30);
if SX=30 then
begin
Writeln('Something is wrong...switching players..');
Nextplayer(false);
end;
if FindnotedItem(x,y) then
begin
Writeln('Starting to alch.');
MMouse(x,y,1,1);
if isuptext('Cast')then
begin
Mouse(x,y,1,1,true);
SetArraylength(Animatecol,High(AnimateCol));
FindColorsTolerance(Animatecol,6525590,203,126,284,182,4);
ACOL:=GetArrayLength(AnimateCol);
end;
end;
for g:=0 to High(AnimateCol)do
begin
if ACOL>=3 then
begin
Writeln('FOund Animation');
Writeln('Continuing...');
Alched:=Alched+1;
ReportVars[0]:=ReportVars[0]+1;
end;
end;
if ACOL<=2 then
begin
TR:=TR+1;
if TR=4 then
begin
Writeln('We have missed recording the color animation when alching 4 Times!');
Writeln('Switching players as a safety precaution.');
nextplayer(false)
end;
end;
end;
end;
procedure Proggie;
begin
if Alched mod Players[0].Integers[1]=0 then
begin
Writeln('==================FREAKS AUTO=======================');
Writeln('Alched '+players[0].strings[0]+'s');
Writeln('Alched '+inttostr(Alched)+'times');
Writeln('Alched For '+TimeRunning);
if CheckLIncrease('magic')then
Writeln('Increase '+inttostr(LevelIncrease2)+' level[s]!');
Writeln('================THANKS FOR USIN IT==================');
end;
end;
procedure LosCreditos;
begin
Writeln('Thanks to WhoCares357 For Helping Me Whenever I Needed It!');
Wait(2000);
writeln('Enjoy.');
ClearDebug;
end;
{=======================THE WONDERFUL MAIN LOOP===============================}
{*****************************************************************************}
begin
SetupSRL;
ScriptId:='829';
SRLID:=SRLIdentification;
SRLPASSWORD:=SRLPASS;
LosCreditos;
if players[0].booleans[0] and
players[0].booleans[1] then
begin
WRiteln('You cannot use both runes and staff...Choose one...');
Terminatescript;
end;
ActivateClient;
SetupRS;
repeat
Alch;
Proggie;
if CR=Players[0].Integers[0] then
NextPlayer(False);
until(not LoggedIn);
if not LoggedIn then
begin
Writeln('The Script Has Logged Out. Stopping the script.');
Proggie;
TerminateScript;
end;
end.
MasterFarmerThiever
SCAR Code:
program Thiever;
{.include SRL/SRL.scar}
var
Steal: Integer;
x,y: Integer;
procedure FindMastaFarmer(x,y: Integer);
var
Click: Boolean;
Farmer1,Farmer2: TPointArray;
MixFarmer: TPointArray;
FFarmer: T2DPointArray;
begin
x:=MSCX; y:=MSCY;
FindColorsSpiralTolerance(x,y,Farmer1,{col}, MSX1,MSY1,MSX2,MSY2,5);
FindColorsSpiralTolerance(x,y,Farmer2,{col}, MSX1,MSY1,MSX2,MSY2,5);
MixFarmer:=CombineTPA(Farmer1,Farmer2);
FFarmer:=SplitTPA(MixFarmer,2);
if GetArrayLength(FFarmer)>0 then
begin
writeln('Found.');
for i:=0 to High(FFarmer)do
begin
MMouse(FFarmer[i].x,FFarmer[i].y,1,1);
wait(200+random(300));
if isuptextmulticustom(['aster','armer','Farm'])then
Break;
if i= High(FFarmer)then
begin
Result:=False;
exit;
end;
end;
GetMousePos(x,y);
Result:=True;
end else
begin
writeln('Could not find Master Farmer colors!');
result:=False;
exit;
end;
end;
function FindBank2(x,y: Integer): Boolean;
begin
Result:= FindSymbol(x,y,'bank');
if not Result then
begin
Result:=True;
if FindColorSpiralTolerance(x,y,LoadSymbolBitmapColor('bank'),MMX1,MMY1,MMX2,MMY2,5)then
Exit;
if FindColorTolerance(x,y,LoadSymbolBitmapColor('bank'),MMX1,MMY1,MMX2,MMY2,5)then
Exit;
if FindColorSpiralTolerance(x,y,GetSymbolCOlor('bank'),x,y,LoadSymbolBitmapColor('bank'),MMX1,MMY1,MMX2,MMY2,5)then
Exit;
Result:=FindColorTolerance(x,y,GetSymbolColor('bank')x,y,LoadSymbolBitmapColor('bank'),MMX1,MMY1,MMX2,MMY2,5);
end;
end;
function SituateBank: Boolean;
begin
Result:=False;
if FindBank2(x,y) then
if MFNF(x,y,1,1)then
if f_fflag(5+random(15))then
Result:=True;
end;
function OpeningBank: Boolean;
begin
Result:=False;
if OpenBankFast('db')then
if PinScreen then
InPin(IntoStr(Pin));
if BankScreen then
Result:=True;
end;
function WalkIt(Color,StartRadial,EndRadial,Radius,Xmod,Ymod,Tolerance,flag: Integer): Boolean;
var
TPA: TPointArray;
TTPA: T2DPointArray;
begin
RadialWalkEx(TPA,x,y,Color,Tolerance,StartRadial,EndRadial,Radius,Xmod,Ymod);
if not getarraylength(TPA)>0 then
Result:=True;
if Result then
begin
TTPA:=SplitTPA(TPA,2);
SortATPASize(TTPA,true);
MiddleTPAEx(TTPA[0],x,y);
if MFNF(x,y,2,2)then
Result:=f_FFlag(flag);
end;
end;
function ChooseSteal: Boolean;
begin
Result:=False;
if not isuptextmulticustom(['teal','eal','ast','arm'])then
Exit;
while not ChooseOption('teal')do
begin
mouse(x,y,0,0,false);
Wait(300+random(400));
end;
Result:=True;
end;
function FindBirdies: Boolean;
var
TPA1,TPA2: TPointArray;
MTPA: TPointArray;
begin
Result:=False;
FindColorsSpiralTolerance(x,y,TPA1,{col},MSX1,MSXY1,MSX2,MSY2,5);
FindColorsSpiralTolerance(x,y,TPA2,{col},MSX1,MSY1,MSX2,MSY2,5);
MTPA:=CombineTPA(TPA1,TPA2);
if not GetArrayLength(MTPA)>1 then
Exit;
Writeln('Farmer hit us.');
end;
function NeedFood: Boolean;
begin
Result:=False;
if GetMMLevels('hp',hp)= Red then
Result:=True;
end;
function EmptyInvEntirely: Boolean;
begin
Result:=False;
if BankScreen then
DepositAll;
if InvEmpty then
Result:=True;
end;
function CheckColorFood: Boolean;
var
FoodTPA: TPointArray;
FFoodTPA: T2DPointArray;
begin
Result:=False;
if BankScreen then
begin
Fixbank;
FindColorsSpiralTolerance(x,y,FoodTPA,FoodColor,MSX1,MSY1,MSX2,MSY2,250);
FFoodTPA:= SplitTPA(FoodTPA,2);
SortATPASize(FFoodTPA,true);
for i:=0 to High(FFoodTPA)do
begin
MMouse(FFoodTPA[0][i].x,FFoodTPA[0][i].y,2,2);
Wait(40+random(300));
if isuptext(uptext)then
Break;
if i=High(FFoodTPA) then
Exit;
end;
while not Result do
begin
GetmousePos(x,y);
Mouse(x,y,0,0,false);
Wait(300+random(300));
if chooseoption('5')then
Result:=True;
end;
end;
end;
function EatFood: Boolean;
var
slot: Integer;
FB: TBox;
begin
Result:=False;
GameTab(4);
if invempty then
Exit;
for slot:=1 to 27 do
begin
FB:= Invbox(slot);
x:= FB.x1+FB.x2/2+random(3); y:= FB.y1+FB.y2/2+random(3);
MMouse(x,y,2,2);
Wait(300+random(300));
if isuptext('Eat')then
Break;
if slot=27 then
begin
Writeln('No Food Left.');
Exit;
end;
end;
GetMousePos(x,y);
Mouse(x,y,0,0,true);
Result:=True;
end;
function f_FFlag(Dist: Integer):Boolean; //Peforms Randoms Check
FTPA: TPointArray;
Temp: Integer;
FPoint: Tpoint;
begin
Result:=False;
FindColorsSPiralTolerance(MMCX,MMCy,FTPA,255,MMX1,MMY1,MMX2,MMY2,5);
if not getarraylength(FTPA)>0 then
exit;
FPoint.x:= MMCX; FPoint.y:= MMCY;
SortTPAFrom(FTPA, FPoint);
if GetColor(FTPA[0].x,FTPA[0].y)=255 then
while (not Distance(FTPA[0].x, FTPA[0].y,FPoint.x, FPoint.y)>=Dist) do
begin
FindNormalRandoms;
FindInventoryRandoms;
Wait(1);
end;
Result:=True;
end;
procedure StealLoop: boolean;
var
Time: String;
begin
repeat
Time:=GetSystemTime;
if FindMastaFarmer(x,y)then
if ChooseSteal then
Wait(200+Random(200));
if not FindBirdies then
Inc(Steal);
if CheckHP then
if not EatFood then
begin
Writeln('No More Food.');
LogOut;
end;
if TimeTo>=Time then
begin
Writeln('Done.');
Logout;
end;
until(not Loggedin)or CheckHP or InvFull
if not Loggedin then
Terminatescript;
GoBack;
end;
function ClickBankSymbolRadians(StartRadial,EndRadial,Radius,,Tolerance): Boolean;
var
TPA: TPointArray;
TP: TPoint;
begin
TP.x:=MMCX;
TP.y:=MMCY;
RadialWalkEx(TPA,MMCX,MMCY,GetSymbolColor(x,y,'bank'),Tolerance,StartRadial,EndRadial,Radius);
if not GetArrayLength(TPA)>0 then
begin
RadialWalk(GetSymbolColor(x,y,'bank'),StartRadial,EndRadial,Radius,1,1);
Exit;
end;
SortTPAFrom(TPA,TP);
if MFNF(TPA[0].x,TPA[0].y,1,1)then
Result:=f_fflag(5+random(4));
end;
function GoForth: boolean;
begin
Result:=True;
if not WalkIt(RoadColor,297,310,72,1,1,5,5+random(15))then
if not WalkIt(RoadCOlor,290,305,75,1,1,5,5+random(15))then
Result:=False;
end;
function GoBack: boolean;
begin
Result:=True;
if not WalkIt(
if not WalkIt(
begin
Result:=False;
Exit;
end;
if not FindBank2(x,y)then
begin
Result:=False
Exit;
end;
end.
Seers Efficiently Efficient Ravaging Script (SEERS for short
)
SCAR Code:
program SEERS; //Seers Energy Efficient Ravaging Script
{.include SRL/SRL.scar}
{.include SLR/SRL/Misc/Users.scar}
{.include SRL/SRL/Skill/Woodcutting.scar}
function AtBank: boolean;
begin
if not loggedin then exit;
if not TrySymbol('bank')then
begin
writeln('Bank not found.');
result:=false;
exit;
end;
result:=MouseFlag(x,y,1,1);
writeln('at bank.');
end;
function BackToBank: Boolean;
begin
if not loggedin then exit;
if not TrySymbol('bank')then
begin
writeln('Bank not Found.');
Result:=False;
exit;
end;
Result:=MFNF(x,y,1,1);
end;
function CountPeopleDist(Dist: integer): integer;
PCol: TPointArray;
PPCol: T2DPointArray;
MTPoint: TPoint;
MMCenter: TPoint;
begin
MakeCompass('N');
FindColorsSpiralTolerance(MMCX,MMCY,PCol,{col},MMX1,MMY1,MMX2,MMY2,5);
PPCol:=SplitTPA(PCol,1);
if not getarraylength>1 then
begin
Result:=0;
Exit;
end;
for i:=0 to High(PPcol)do
begin
MTPoint:=MiddleTPA(PPcol[i]);
if Distance(MTPoint.x,MTpoint.y,MMCX,MMCY)<=Dist then
Inc(Result);
end;
Result:= Dec(Result);
end;
function f_FFlag(Dist: Integer):Boolean; //Peforms Randoms Check
FTPA: TPointArray;
Temp: Integer;
FPoint: Tpoint;
begin
FindColorsSPiralTolerance(MMCX,MMCy,FTPA,255,MMX1,MMY1,MMX2,MMY2,5);
if not getarraylength(FTPA)>0 then
begin
result:=false;
exit;
end;
FPoint.x:= MMCX; FPoint.y:= MMCY;
SortTPAFrom(FTPA, FPoint);
if GetColor(FTPA[0].x,FTPA[0].y)=255 then
while (not Distance(FTPA[0].x, FTPA[0].y,FPoint.x, FPoint.y)=Dist) do
begin
FindNormalRandoms;
FindInventoryRandoms;
Wait(1);
end;
Result:=True;
end;
function TrySymbol(Symbol: String): Boolean;
begin
Result:=False;
if not FindSymbol(x,y,Symbol)then
if not FindColorSpiralTolerance(x,y,GetSymbolColor(Symbol),MMX1,MMy1,MMX2,MMY2,5)then
if not FindColorSpiralTolerance(x,y,LoadSymbolBitmapColor(Symbol),MMX1,MMY1,MMX2,MMY2,5)then
Exit;
Result:=MFNF(x,y,1,1);
end;
procedure StartCut;
T1Col: TPointArray;
T2COl: TPointArray;
MTCol: TPointArray;
STCol: T2DPointArray;
amount, Mark: Integer;
begin
if FlagPresent then
f_Flag(0);
MakeCompass('n');
SetAngle(true);
FindColorsSpiralTolerance(MSCX,MSCY,T1COl,{col},MSX1,MSY1,MSX2,MSY2,5);
FindCOlorsSpiralTolerance(MSCX,MSCY,T2Col,{col},MSX1,MSY1,MSX2,MSY2,5);
MTCOL:=CombineTPA(T1Col,T2COl);
if getarraylength(MTCol)>0 then
begin
STCol:=TPAtoATPAEX(MTCol,10,10);
SortATPASize(STCOl,true);
MiddleTPAEx(STCol[0],x,y);
MMouse(x,y,1,1);
wait(300+random(400));
if isuptextmulticustom(['ree','ee','aple','Maple','hop'])then
begin
writeln('Tree found.');
MarkTIme(Mark);
Mouse(x,y,0,0,true);
end else
begin
Writeln('Couldnt find tree.');
Terminatescript;
end;
gametab(4);
repeat
amount:=countdtminv(log);
Wait(30+random(30));
FindInventoryRandoms;
FindNormalRandoms;
if FindEnt(x,y,true)or FindStump or FindBirdsNest then
NextTree;
if countdtminv(log)>amount then
writeln('Got a log.');
until(invfull) or (TimeFromMark(Mark)>=120000);
IncEx(Logs,CountDTMInv(Logs));
BackToBank;
Exit;
end;
writeln('Couldnt find tree color.');
terminatescript;
end;
function CheckAxe: Boolean;
begin
GameTab(6);
Mousebox(blah,3);
Wait(300+random(300));
if isuptextmulticustom(['xe','Axe'])then
if not isuptextmulticustom(['rok','Brok','ken'])then
begin
Result:=True;
Exit;
end;
Writeln('Axe either not found or broken.');
Result:=False;
exit;
end;
function NextTree;
NT1Col, NT2Col: TPointArray;
NMTCol: TPointArray;
DTCol: T2DPointArray;
DPCol: TPoint;
begin
Result:=False;
FindColorsSpiralTolerance(MSCX,MSCY,NT1Col,{col},MSX1,MSY1,MSX2,MSY2,5);
FindCOlorsSpiralTolerance(MSCX,MSCY,NT2Col,{col},MSX1,MSY1,MSX2,MSY2,5);
NMTCOL:=CombineTPA(NT1Col,NT2COl);
DTCol:= TPAtoATPAEx(NMTCol,20,20);
SortATPASize(DTCol,true);
DPCol:=MiddleTPA(DTCol[0]);
SortATPAFromFirstPoint(DTCol,DPCol);
for i:=0 to High(DPCol)do
begin
MMouse(x,y,1,1);
Wait(300+random(400));
if isuptextmulticustom(['ut','og','aple'])then
Break;
if i:= High(DPCol)then
begin
writeln('Could not find next tree.');
exit;
end;
end;
Mouse(x,y,0,0,true);
while FlagPresent do
begin
FindNormalRandoms;
Wait(1);
end;
Flag;
end;
function FindFlagColor(StartRadial: integer; EndRadial: Integer;Tolerance: Integer; Radius: integer): Boolean;
//checks if Flag made in area.
Var
TPA: TPointArray;
begin
FindColorsSpiralTolerance(MMCX,MMCy,TPA,255,MMX1,MMY1,MMX2,MMY2,5);
FilterPointsPie(TPA,StartRadial,EndRadial,Radius-5,Radius+5,MMCX,MMCY);
SortCircleWise(TPA,MMCX,MMCY,StartRadial,True);
if GetColor(TPA[0].x,TPA[0].y)=255 then
Result:=True;
end;
function ToTheMaples: Boolean;
Var
MTPA: TPointArray;
MTTPA: T2DPointArray;
D1Colors,D2Colors: TPointArray;
MDColors: TPointArray;
SMDColors:= T2DPointArray;
begin
Result:=False;
if not loggedin then exit;
if not atbank then exit;
RadialWalkEx(MTPA,x,y,{col},5,340,10,50,1,1);
if getarraylength(MTPA)>0 then
begin
setlength(MTA,getarraylength(MTPA));
MTTPA:=splittpa(MTPA,2);
SortaTPASize(MTTPA,true);
MiddleTPAEx(MTPA[0],x,y);
Mouse(x,y,1,1);
Result:=FindFlagColor(330,15,5,50);
if not Result then
begin
OpenDoor;
TrySymbol;
ToTheMaples;
end;
end;
end;
procedure Depositing;
begin
MakeCompass('N');
if TrySymbol('bank')then
begin
OpenBankFast('seers');
if BankScreen then
if FindDTM(log,x,y,MIX1,MIY1,MIX2,MIY2)then
repeat
Mouse(x,y,1,1,false);
Wait(300+random(200));
if chooseoption('ll')then
Break;
until(false);
if InvCount<5 then
Exit;
end else
begin
Writeln('Couldnt find bank.');
terminatescript;
end;
end;
procedure SetupRS;
begin
if not TrySymbol('bank')then
Exit;
for i:= 1 to 3 do
SetChat('hide',i);
Gametab(4);
end;
function OpenDoor: Boolean;
begin
if FindFlagColor(270,90,5,50)then
begin
MakeCompass('S');
SetAngle(false);
while FlagPresent do
begin
FindNormalRandoms;
Wait(1);
end;
FindColorsSpiralTolerance(MSCX,MSCY,DColors,5340814,MSX1,MSY1,MSX2,MSY2,5);
FindColorsSPiralTolerance(MSCX,MSCY,DColors,4417653,MSX1,MSY1,MSX2,MSY2,5);
MDColors:=CombineTPA(D1Colors,D2COlors);
if getarraylength(MDColors)>3 then
begin
SMDCOlors:= SplitTPA(MDcolors,3);
SortATPASize(SMDColors,true);
MMouse(SMDColors[0].x,SMDCOlors[0].y,1,1);
Wait(50+random(600));
if isuptext('pen')then
begin
Writeln('Door found.');
Mouse(x,y,0,0,true);
Result:=Wait(50+random(600));
Exit;
end;
end else
begin
Writeln('Could not find door color.');
Result:=False;
Exit;
end;
end else
begin
Writeln('Could not find flag near door.');
Result:=False;
end;
end;
function FindCammyRoadColor: Integer;
var
TPA: Tpointarray;
TTPA: T2DPointArray;
begin
FindColorsSpiralTolerance(MMCX,MMCY,tpa,FindRoadCOlor,MMX1,MMy1,MMX2,MMy2,5);
if GetArrayLength(Tpa)>0 then
begin
SetLength(TPA, Getarraylength(TPA));
TTPA:=SPlitTPA(Tpa,1);
if GetArrayLength(TTPA)>1 then
begin
SetLength(TPA, Getarraylength(TTPA));
SortaTPASize(TTPA,true);
Result:=GetColor(TTPA[0][0].x, TTPA[0][0].y);
Else
Result:= RoadColor;
Else
Result:= RoadColor;
end;
begin
ActivateClient;
if not loggedin then
LoginPlayer;
SetupRS;
if TrySymbol('bank')then
begin
if not CheckAxe then
begin
Writeln('No Axe.'):
terminatescript;
end;
AtBank;
for i:=0 to Players[CurrentPlayer].Integers[0]do
begin
ToThemaples;
repeat
NextTree;
FindNormalRandoms;
FindInventoryRandoms;
FTWait(2);
until(InvFull)or not loggedin;
if not loggedin then
begin
Writeln('Not Logged In.');
termiatescript;
end;
BackToBank;
end;
if not Loggedin then
begin
Writeln('Not Logged In.');
termiantescript;
end;
Writeln('Exceeded number of times to cut. Logging off and terminating.');
while loggedin do
Logout;
Terminatescript;
end else
begin
Writeln('Could not find bank.');
terminatescript;
end;
end.
FreaksLumbySpinner
THis is my latest work and the one that I have the highest hopes for 
SCAR Code:
program New;
{.include SRL/SRL.scar}
Var x,y: Integer;
Procedure DeclarePlayers;
begin
HowManyPlayers :=1;
NumberOfPlayers(HowManyPlayers);
CurrentPlayer:=0;
Players[0].Name :=''; //Username For Runescape
Players[0].Pass :=''; //Password For Runescape
Players[0].Nick :=''; //Three Words From Your Username
Players[0].Active:=True; //If This Player Is Active
Writeln('You are using '+inttostr(howmanyplayers)+' player[s]');
Writeln('Good Luck');
MouseSpeed:=25;//Adjust If You Want.
end;
procedure SettingUp;
begin
ClearDebug;
SetupSRL;
ActivateClient;
DeclarePlayers;
if not Loggedin then
LoginPlayer;
MakeCompass('N');
SetAngle(True);
end;
function FindBanking: Boolean;
Var Points: TPointArray;
Var Pointing: TPoint;
begin
if not FindSymbol(x,y,'bank')then
begin
FindColorsTolerance(Points,{col},MSX1,MSY1,MSX2,MSY2,5);
Pointing:= MiddleTPA(Points);
t:= GetSystemTime+5000;
while not FlagPresent or not (GetSystemTime>t) do
begin
Mouse(Pointing.x,Pointing.y,2,2,true);
Wait(30+random(300));
end;
FFlag(0);
Exit;
end;
FFlag(0);
end;
function OpeningBank: Boolean;
Var Bank: TPointArray;
Var Bank2: TPointArray;
begin
FindColorsTolerance(Bank,{col},MSX1,MSY1,MSX2,MSY2,5);
if GetArrayLength(Bank)>0 then
begin
Bank2:=SplitTPA(Bank,3);
SortATPASize(Bank2,True);
MMouse(Bank2[0][0].x, Bank2[0][0].y, 1,1);
if not IsUpText('pen') then
Exit;
begin
Mouse(x,y,1,1,false);
Wait(20+random(200));
ChooseOption('pen');
end;
end;
if FindObjTPA(x, y,{col}, 5, -1, 2, 2, 1, ['pen','ank'])then
begin
Mouse(x,y,0,0,false);
Wait(20+random(200));
ChooseOption('pen');
end;
end;
procedure FindingFlax;
begin
if PinScreen then
InPin(PinNumber);
if BankScreen then
begin
FixBank;
if FindColorTolerance(x,y,{col flax},MSX1,MSY1,MSX2,MSY2,250)then
begin
Mouse(x,y,0,0,false);
Wait(RandomRange(300,600));
ChooseOption('All');
else
begin
writeln('Cant find flax.');
TerminateScript;
end;
CloseBank;
Exit;
end;
Writeln('Couldnt find bank screen.');
end;
Procedure GoToStaircase;
Var StairPoints: TPointArray;
Var i,t2, Stairs: Integer;
Var s: String;
begin
MakeCompass('N');
SetAngle(True);
Stairs := DTMFromString('78DA63E463606050674001895A4C609A11CA6' +
'71404122AA86ADEBD7BC7F00B590D3790D04455F3FEE537B83920' +
'0C00437407C5');
if DTMRotated(Stairs,x,y,MMX1,MMX2,MMY2,MMX2) then
if rs_onminimap(x,y)then
begin
Mouse(x,y,0,0,true);
Wait(RandomRange(300,600));
FFlag(0);
end;
FindColorsSpiralTolerance(x, y, StairPoints, 4280671, MSX1, MSY1, MSX2, MSY2, 5);
t2:= GetArrayLength(StairPoints);
SetArrayLength(StairPoints, t2);
for i:=0 to t2-1 do
begin
MMouse(StairPoints[i].x, StairPoints[i].y, 0, 0);
Wait(RandomRange(300,600));
s:= rs_getuptext;
if not Pos('air',s)<>0 then
Break;
end;
if i = t2-1 then
begin
Writeln('Could not find Stairs.')
Terminatescript;
end;
x:= StairPoints[i].x;
y:= StairPoints[i].y;
Mouse(x,y,0,0,true);
FreeDTM(Stairs);
end;
function FindWheelSymbol: Boolean;
begin
if FindSymbol(x, y, 'SpinningWheel')then
begin
Mouse(x,y,0,0,true);
Wait(RandomRange(300,600));
FFlag(0);
Exit;
end;
If FindSymbol(x,y, 'Quest')then
Continue;
if FindColorTolerance(x, y, {col}, MMCX1, MMCY1, MMCX2, MMCY2, 5)then
if rs_OnMinimap(x,y)then
begin
Mouse(x, y, 0, 0, true);
FFlag(0);
Writeln('Found.');
end;
end;
function FindWheel: Boolean;
Var WheelPoints: TPointArray;
Var CTS2: Integer;
Var s2: String;
begin
CTS2:= GetColorToleranceSpeed;
FindColorsTolerance(WheelPoints, {col}, MSX1, MSY1, MSX2, MSY2, 5);
for i:= 0 to High(WheelPoints)-1 do
begin
MMouse(WheelPoints[i].x, WheelPoints[i].y, 0, 0);
Wait(RandomRange(300,600));
s2:= rs_getuptext;
if not Pos('heel', s2)<>0 then
Break;
end;
if i = High(WheelPoints) then
begin
Writeln('Could not find wheel.');
Terminatescript;
end;
x:= WheelPoints[i].x;
y:= WheelPoints[i].y;
Mouse(x, y, 0, 0, true);
end;
function CountColorTBox(Point1: Integer; Point2: Integer; Color: Integer; DistEnc: Integer; Box: TBox): Integer;
begin
Box.x1:= Point1.x+DistEnc;
Box.y1:= Point1.y+DistEnc;
Box.x2:= Point2.x-DistEnc;
Box.y2:= Point2.y-DistEnc;
Result:= CountColor(Color, Box.x1, Box.y1, Box.x2, Box.y2);
end;
procedure ClickFlax;
Var FlaxBox: TBox;
Var FlaxArray: TPointArray;
Var t4: Integer;
begin
if FIndColorTolerance(x, y, {col}, MSX1, MSY1, MSX2, MSY2, 5)then
if CountColorTBox(x, y, {col}, 5, FlaxBox)>2 then
begin
FindColorsTolerance(FlaxArray, {col}, FlaxBox.x1, Flaxbox.y1, Flaxbox.x2, Flaxbox.y2, 5);
t4:= GetArrayLength(FlaxArray);
for i:= 0 to t4-1 do
begin
MMouse(FlaxArray[i].x, FlaxArray[i].y , 1, 1);
Wait(RandomRange(300,600));
if isuptext('lax')then
begin
Result:=ChooseOption('All');
Break;
end;
end;
end;
Result:=false;
end;
function CountDTMInv(DTM: integer): Integer;
Var
Slot: Integer;
DBox: TBox;
begin
if not logged in then exit;
Gametab(4);
for i:=1 to 28 do
begin
dbox:=invbox(slot);
if FindDTM(DTM,x,y,slot.x1,slot.y1,slot.x2,slot.y2)then
Inc(result);
end;
end;
procedure WhileSpinning;
Var z: Integer;
begin
Writeln('Starting to spin.');
Gametab(4);
z:=GetSystemTime+50000;
while CountDTMInv(Flax)<28 or GetSystemTime<z do
begin
FindNormalRandoms;
Wait(RandomRange(2,300));
end;
end;
function BackToStaircase: Boolean;
Var StairPoints2: TPointArray;
Var i,t3,CTS: Integer;
Var s2: String;
begin
MakeCompass('N');
SetAngle(True);
Stairs: DTMFRomString....
if DTMRotated(Stairs,x,y,MMX1,MMX2,MMY2,MMX2) then
if rs_onminimap(x,y)then
begin
Mouse(x,y,0,0,true);
Wait(RandomRange(300,600));
FFlag(0);
end;
CTS:=GetColorToleranceSpeed;
ColorToleranceSpeed(2);
SetColorSpeed2Modifiers(.0606,.014);
FindColorsSpiralTolerance(x, y, StairPoints2, 7568253, MSX1, MSY1, MSX2, MSY2, 5);
ColorToleranceSpeed(CTS);
for i:=0 to High(StairPoints2)-1 do
begin
Mouse(StairPoints2[i].x, StairPoints2[i].y, 0, 0, left);
Wait(RandomRange(300,600));
s2:= rs_getuptext;
if not Pos('air',s2)<>0 then
Break;
end;
if i = High(StairPoints2)-1 then
begin
Writeln('Could not find Stairs.')
Terminatescript;
end;
x:= StairPoints2[i].x;
y:= StairPoints2[i].y;
Mouse(x,y,0,0,false);
Wait(randomrange(300,600));
ChooseOption('Up');
end;
Procedure DBSRF;
begin
if BankScreen then
begin
FixBank;
DepositAll;
FindingFlax;
end;
end;
begin
SettingUp;
FindBanking;
OpeningBank;
repeat
FindingFlax;
GoToStaircase;
FindWheelSymbol;
FindWheel;
ClickFlax;
WhileSpinning;
BackToStaircase;
FindBanking;
OpeningBank;
DepositingBS;
DBSRF;
until(not loggedin);
end.
THis is of course still in navity but it'll get there.
For you newer scripters you can use all the ideas in here. You'll find that I didn't register them ;D. Steal all the ideas you want. Please, if these helped you in getting some ideas in some way plz tell me, I'd really appreciate it