SCAR Code:
program ShiloFisher;
{.include SRL\SRL.scar}
{.include SRL\SRL\Skill\Fishing.scar}
{Fishy Colors: 14731196 16249337 15519165}
const
RunDirect = 'N'; // Run Direction incase of Fighting Randoms
FirHovSk = 'Fishing'; // First Skill to Hover Over
SecHovSk = 'Cooking'; // Second Skill to Hover Over
TMaxTime = 200; // The maximum amount of time to fish total (Minutes).
SRL_ID = '4782'; // Your SRL ID
SRL_PASS = '307007'; // Your SRL Password
MSpeed = 20; // Mouse Speed
HideScar = 'Ventrillo'; // This is what you want scar to disguise itself as.
var
LoadsToDo,LoadsBanked: Integer;
TRunTime: Integer;
Feather, Salmon, FlyFishingRod, Trout: Integer;
x, y: Integer;
i: Integer;
procedure DeclarePlayers;
begin
HowManyPlayers := 1; {Change if adding more Players, see below}
NumberOfPlayers(HowManyPlayers);
CurrentPlayer := 0;
Players[0].Name := ''; {Your RuneScape Username}
Players[0].Pass := ''; {Your Password}
Players[0].Nick := ''; {Four letters of your RuneScape username NON-CAPITALIZED!}
Players[0].Pin := '0000'; {Enter Your Bank Pin here, '0000' used for no Bank Pin}
Players[0].Active := True; {Use this Player? True for YES, False for NO}
Players[0].booleans[0] := False; {Make True if Banking}
{==================== Use MultiPlayer? ====================}
{ Fill out the following form, delete all // }
{ at the beginning of each line. Also, for }
{ more than one extra player, make sure the }
{ numbers are in consecutive order. (1,2,3...) }
{==========================================================}
// Players[1].Name := 'username'; {Your RuneScape Username}
// Players[1].Pass := 'password'; {Your Password}
// Players[1].Nick := 'nick'; {Four letters of your RuneScape username NON-CAPITALIZED!}
// Players[1].Pin := '0000'; {Enter Your Bank Pin here, '0000' used for no Bank Pin}
// Players[1].Active := True; {Use this Player? True for YES, False for NO}
// Players[0].Bank := False; {Make True if Banking}
end;
{*******************************************************************************
procedure DeclareDTMs;
By: Toxin
Description: Declares DTMs useful for this script.
*******************************************************************************}
procedure DeclareDTMs;
begin
Feather:= DTMFromString('78DA6394646060106140018776EE04D38C503' +
'EA32090506540038CA86A04808432013520732489502346408D28' +
'90104055E1E16082AA460A48701330471E48B0135003F2130FAA0' +
'A03050554358A404298801A907B6409D82507242408A85102126C' +
'F8D5000075690643');
Salmon:= DTMFromString('78DA6314616060106740013BCB32C1342394C' +
'FC80D241418D00023AA1A3620214F400D27909020A046104808A3' +
'AAC873B34355230A24040898230D247808A801B99783083584CC5' +
'10212FC44982348408D0411E1038A2F39FC6A00041504D1');
FlyFishingRod:= DTMFromString('78DA631463606090634001D12EDC609A11CA6' +
'7940112F2A86A0C141450D5480209650634C088AA0664973A0135' +
'2240428B801A4120A141400D1F905025A0861748281250230424A' +
'409A81105126204D448000961026A40F608A0AA7073304655038A' +
'2B7E02E6A800095E026A9488700FC82E29026A88481B00B98305E' +
'7');
Trout:= DTMFromString('78DA6314616060106240019B972F07D38C503' +
'E231B90906240038CA86A0480043F013520BB3808A8910412DC04' +
'D4C803091622D4701150A300247808A89100122204D4880209092' +
'2C2471A5585818202AA1A4E202143C01C3E202140400DC8DFC2F8' +
'D5000037FC049B')
end;
{*******************************************************************************
procedure FindRandoms;
By: Nava2
Description: (Unsure if Working) Find Normal Randoms and Fights, runs away,
and back.
*******************************************************************************}
procedure FindRandoms;
begin
FindNormalRandoms;
if FindFight then
begin
RunTo(RunDirect, true);
Wait(15000 + random(5000));
end;
end;
{*******************************************************************************
procedure AntiBan;
By: Nava2
Description: Basic AntiBan Functions
*******************************************************************************}
procedure AntiBan;
begin
case random(50) of
0: RandomRClick;
1: BoredHuman;
2: HoverSkill(FirHovSk, False);
3: AlmostLogout;
4: PickUpMouse;
5: HoverSkill(SecHovSk, False);
end;
end;
{*******************************************************************************
Function CheckEquipt(boolean);
By: Nava2
Description: Checks inventory for FlyFishingRod and Feathers. Returns True if
Equiptment is found.
*******************************************************************************}
function CheckEquipt :Boolean;
var i: integer;
begin
if not (LoggedIn) then Exit;
i:= 0;
if FindDTM(FlyFishingRod, x, y, MIX1, MIY1, MIX2, MIY2) then
i:= i + 1;
if FindDTM(Feather, x, y, MIX1, MIY1, MIX2, MIY2) then
i:= i + 2;
if i=1 then
begin
Writeln('Found Fly Rod, Run out of Feathers.');
Result:=False;
end else
if i=2 then
begin
Writeln('Found Feathers, Missing Fly Rod.');
Result:=False;
end else
if i=3 then
begin
Writeln('Found All Necessary Equiptment.');
Result:=True;
end;
end;
{*******************************************************************************
Function FishRiver(boolean);
By: Nava2
Description: (Not Working) Clicks on Fishing Spot, results true if finds it,
False if it cannot.
*******************************************************************************}
function FishRiver: Boolean;
var SearchFSpotTime:integer;
begin
if not (LoggedIn) then Exit;
MarkTime(SearchFSpotTime);
AntiBan;
FindRandoms;
if (CheckEquipt=False) then Exit;
SetAngle(false);
if not FindObjCustom(x, y, ['ishing', 'spot'], [14731196, 16249337, 15519165], 30) then
begin
MakeCompass('E');
Writeln('Cannot find Fishing Spot, Searching');
Wait(500+random(300));
end else
if FindObjCustom(x, y, ['ishing', 'spot'], [14731196, 16249337, 15519165], 30) then
begin
if (IsUpText('ure') = true) then
Mouse(x, y, random(5), random(5), true);
Writeln('Found Fishing Spot, Fishing...');
Result:= True;
end;
if (TimeFromMark(SearchFSpotTime)>15000) then
begin
Result:= False;
Writeln('Could not find Fishing Spot, Walking to Different Part of River.');
end;
end;
{*******************************************************************************
procedure WalkToRiver;
By:Nava2
Description: Procedure to walk from Bank to River.
*******************************************************************************}
procedure WalkToRiver;
var i: integer;
begin
if not (LoggedIn) or CheckEquipt=false then Exit;
SetAngle(True);
i:=0;
if (i= 0) then
begin
if not FindSymbol(x, y, 'Fish') then
begin
FindSymbol(x, y, 'Furnace');
Wait(100+random(50));
Mouse(x, y, 10, 10, true);
FFlag(5);
end else
begin
AntiBan;
FindRandoms;
FindSymbol(x, y, 'Fish')
Wait(100 + random(50));
Mouse(x, y, 4, 4, true);
FFlag(5);
FindWaterColor;
i:= i + 1;
end;
end;
if (i > 0) then
begin
if not (LoggedIn) then Exit;
FindRandoms;
RadialWalk(WaterColor, 340, 20, 72, 10, 10);
FFlag(5);
AntiBan;
i:= i + 1
end;
end;
{*******************************************************************************
Function CheckFishing:Boolean;
By: Nava2
Description: Basic Function which checks that the Fly Rod is out and fishing.
*******************************************************************************}
function CheckFishing:Boolean;
begin
if FindColorTolerance(x, y, 201757, 227, 131, 290, 168, 10) then
begin
result:= true;
end else
begin
result:= false;
end;
end;
{*******************************************************************************
procedure DropeItem(i: Integer);
By: Lorax / Hy71194 Made Quicker <- THANKS :)
Description: Drops Item At Given Position (1-28)
*******************************************************************************}
function DropeItem(i: Integer): Boolean;
var
Pr: TPoint;
begin
GameTab(4);
if ExistsItem(i) then
begin
Pr := ItemCoords(i);
Mouse(Pr.x, Pr.y, 8, 8, False);
Wait(50 + Random(75));
if (ChooseOption('rop')) then
begin
Result := True;
Wait(10 + Random(50));
end;
end;
end;
{*******************************************************************************
procedure DropDe(f,t: integer);
By: Hy71194
Description: Drops items in slots f-t really fast =]
*******************************************************************************}
procedure DropDe(f,t: integer);
var Hmm: integer;
begin
Hmm := MouseSpeed;
MouseSpeed := 25+Random(7);
for i := f to f do
DropeItem(i);
WriteLn('All Dropped!');
MouseSpeed := Hmm;
end;
{*******************************************************************************
procedure PowerFish;
By: Toxin and Nava2
Description: Runs PowerFish function, fishs and drops.
*******************************************************************************}
procedure PowerFish;
begin
if not (LoggedIn) or CheckEquipt=false then exit;
begin
if (FishRiver=false) then
begin
WalkToRiver;
end;
MakeCompass('W');
repeat
if not (LoggedIn) then exit;
begin
AntiBan;
FindRandoms;
FishRiver;
Wait(4000+ random(2000));
if (CheckFishing=false) then
FishRiver;
if (InvFull) then
DropDe(3, 28);
end;
until (TimeFromMark(TRunTime)>TMaxTime*60000)
Exit;
end;
end;
{*******************************************************************************
procedure SetupBasics;
By: Toxin and Nava2
Description: Sets up Basic needed functions for script, SRL Stats, HideScar,
etc.
*******************************************************************************}
procedure SetupBasics;
begin
SetupSRL;
Disguise(HideScar);
SRLID := SRL_ID;
SRLPASSWORD := SRL_PASS;
MouseSpeed := MSpeed + Random(3);
DeclarePlayers;
end;
{*******************************************************************************
procedure Welcome;
By: Toxin and Nava2
Description:
*******************************************************************************}
procedure Welcome;
begin
ClearDebug;
Writeln(' ==================================================')
Writeln(' || ||')
Writeln(' || Welcome To Our Shilo Fisher ||')
Writeln(' || Created By ||')
Writeln(' || XxXx Toxin XxXx and Nava2! ||')
Writeln(' || ||')
Writeln(' ==================================================')
end;
{*******************************************************************************
procedure MainLoop;
By: Toxin and Nava2
Description: General Scipt
*******************************************************************************}
procedure MainLoop;
begin
MarkTime(TRunTime);
Welcome;
AntiBan;
Wait(2000 + random(1000));
if (Players[CurrentPlayer].Booleans[0] = False) then
begin
PowerFish;
end;
// if (Players[CurrentPlayer].Bank = True) then
// BankFish;
end;
{*******************************************************************************
procedure Main Function;
By: Toxin and Nava2
Description: Runs Script
*******************************************************************************}
begin
SetupBasics;
ActivateClient;
Wait(1000+random(500));
LoginPlayer;
Wait(500+random(500));
if not (LoggedIn) then Exit;
Mainloop;
end.