Simba Code:
program Draynor_Fisher;
{$i srl/srl/misc/smart.simba}
{$i SRL/SRL.simba}
//{.Include SRL\SRL\Misc\Debug.simba}
//{$i SRL/SRL/misc/paintsmart.simba}
{$i ObjectDTM/ObjDTMInclude.Simba}
Const //Yoho's
SERVER = ('54'); // Enter "0" to pick a random server.
MEMBERS = False; // Set to True if using a RS-Members account. False if F2P.
SRLStats_Username = ''; // Your SRL Stats Username
SRLStats_Password = ''; // Your SRL Stats Password
NumbOfPlayers= 1; //How many players are you using
StartPlayer= 0; //Player to start auoting with! (0 means first char)
Version = 1.1;
Var
Fished: integer;
aFound: Extended;
Fish1: integer;
Fish2:Integer;
Sar: integer;
Her: Integer;
Sardine_Caught, Herring_Caught, ex: integer;
{*******************************************************************************
procedure DeclarePlayers;
By: SRL
Description: SRL's Player Setup
*******************************************************************************}
procedure DeclarePlayers;
var i:integer;
begin
NumberOfPlayers(2);
CurrentPlayer := 0;
for i := 0 to NumbOfPlayers-1 do
Players[i].BoxRewards := ['mote', 'ostume', 'XP', 'Gem', 'ithril', 'oal', 'une', 'oins'];
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Member := False;
Players[0].Active := True;
Players[0].Pin := '';
Players[1].Name := '';
Players[1].Pass := '';
Players[1].Nick := '';
Players[1].Member := False;
Players[1].Active := True;
Players[1].Pin := '';
end;
Procedure ObjSetup; //Euph's
begin;
ObjDTM_Setup;
end;
Procedure StatsGuise(wat:String); //Yoho's
Begin
Status(wat);
Disguise(wat);
End;
//Function CheckAndClick(X,Y:Integer):Boolean;
//By: YoHoJo
//Description: Moves mouse to x,y, checks for uptext, and clikcs if found
//*******************************************************************************}
Function CheckAndClick(X,Y:Integer):Boolean;
Begin
MMouse(x, y, 5, 5);
{Wait(100 + Random(50));
If CountUpColor('B', 41, 5, 86, 24, 70, 140) Then}
If WaitUpTextMulti(['Mine','ine'], 150) Then
Begin
Result:=True;
GetMousePos(x, y);
Mouse(x, y, 0, 0,True);
Wait(100+Random(50));
FFlag(0);
End;
End;
Procedure FailSafe(Reason:String); //Yoho's
begin
Players[CurrentPlayer].Loc:=reason;
Logout;
Terminatescript;
end;
Procedure HumanMMouse(eX, eY, ranX, ranY: Integer);
var
randSpeed: extended;
X,Y,X2,Y2,A,Dist,MP: integer;
begin
A := MouseSpeed;
GetMousePos(X, Y);
Dist := Distance(X, Y, eX, eY);
MP := Round(Dist/150);
if MP < 0 then
MP := 1;
randSpeed := (random(MouseSpeed) / 2.0 + MouseSpeed) / 10.0;
X2 := RandomRange(eX-(A*MP), eX+(A*MP));
Y2 := RandomRange(eY-(A*MP), eY+(A*MP));
WindMouse(X, Y, X2, Y2, 11, 8, 10.0 / randSpeed, 12.0 / randSpeed, 10.0 * randSpeed, 10.0 * randSpeed);
GetMousePos(X, Y);
MMouse(eX, eY, ranX, ranY);
MouseSpeed := A;
end;
Procedure Loadvars;
begin;
MouseSpeed := RandomRange(14, 18);
end;
Procedure Antiban; //I liked a few of Yoho's antibans, I implemented them here
Begin
Case Random(254) Of
0: HoverSkill('Fishing', False);
1: Begin PickUpMouse; SleepAndMoveMouse(3000 + Random(500)); End;
2: IdleTime(100+random(700), 100+Random(100), 0.2+RandomE/2);
3: Begin GameTab(Tab_Stats); Wait(3000 + Random(500)); GameTab(Tab_Inv); End;
4: HoverSkill('random', False);
5: RandomMovement;
End;
end;
Procedure ProgressReport;
begin
Cleardebug;
Writeln('You have been Fishing for: ' + TimeRunning);
Writeln('Fish Caught: ' + IntToStr(Fished*27));
Writeln('Exp gained: ' + IntToStr(Fish1+Fish2));
end;
Procedure Fishing;
var
Sardine, Herring, Fishspot, Bait, X, Y, I: Integer;
begin
SetAngle(SRL_ANGLE_HIGH);
MakeCompass('E');
begin
Bait := DTMFromString('mbQAAAHicY2VgYHBlYmCwBWJPIHYDYlMgfg4Uvw/ED4D4LRC/BuL19RIYmB8ojo4ZsWAwAABOmgyC');
if not FindDTM(Bait, x, y, MIX1, MIY1, MIX2, MIY2) then
begin
Writeln('Out of Bait')
ExitToLobby;
TerminateScript;
end;
begin
FishSpot := BitmapFromString(115, 89, 'meJzt0FEJw1AARTH/NjpoP1eJk' +
'3HuG4EoyPt83hN87+ss+ZhYsWIX5GNixYpdkI+JFSt2QT4mVqzYBf' +
'mYWLFiF+RjYsWKXZCPiRUrdkE+Jlas2AX5mFixYhfkY2LFil2Qj4k' +
'VK3ZBPiZWrNgF+ZhYsWIX5GNixYpdkI+JFSt2QT4mVqzYBfmYWLFi' +
'F+RjYsWKXZCPiRUrdkE+Jlas2AX5mFixYhfkY2LFil2Qj4kVK3ZBP' +
'iZWrNgF+ZhYsWIX5GNixYpdkI+JFSt2QT4mVqzYBfmYWLFiF+Rj/x' +
'r7Awr6zSg=');
if FindBitmapToleranceIn(FishSpot, x, y, 0, 0, 700, 500, 20) then
begin
MMouse(X, Y, 2, 2);
ClickMouse2(False);
Wait(1000+random(550));
Waitoption('ait', 3000);
WaitFunc(@InvFull,10,400000);
end;
//flights' counter
If invfull then
Sardine := DTMFromString('mggAAAHicY2NgYMhiYmAoAOIyIM4D4hQgTgfip0C5O0B8H4ifA/ErIH4CxFNWTwGSTBiYH0hiw4w4MAQAALjCCi4=');
Herring := DTMFromString('mbQAAAHicY2VgYLjMxMBwC4hPA/EpIL4PxImMDAwRQJwMxDlAHAPEmnZ2QNVMKJifARMwYsFgAABXgAbb');
Sar:= CountItems('dtm', Sardine, []);
Her:= CountItems('dtm', Herring, []);
IncEx(Sardine_Caught, Sar);
IncEx(Herring_Caught, Her);
Fish1 := (Sar*20);
Fish2 := (Her*30);
end;
FreeDTM(Bait);
FreeDTM(Sardine);
FreeDTM(Herring);
FreeBitmap(FishSpot);
end;
end;
Procedure WalkingToBank;
var
Path: TStringArray;
X, Y, I: Integer;
begin
if invfull then
begin
Path:= ['648:34:4:1:7:634:73:1:7:630:85:1:7:622:69:1:7:634:101'];
for I := 0 to 0 do
ObjDTM_Walk(Path[i], 0, 100, 80, True);
end;
end;
Procedure DepositFish ;
var
Sardine, Herring, Bank, x, y:integer;
begin
SetAngle(SRL_ANGLE_HIGH);
MakeCompass('E');
begin
if not loggedin then exit;
FindNormalRandoms;
Antiban;
DidRedClick;
TimeRunning;
Inc(Fished);
Begin;
OpenBankNpc;
Wait(1500+random(500));
begin
Sardine := DTMFromString('mggAAAHicY2NgYMhiYmAoAOIyIM4D4hQgTgfip0C5O0B8H4ifA/ErIH4CxFNWTwGSTBiYH0hiw4w4MAQAALjCCi4=');
begin
if FindDTMRotated(Sardine, x, y, MIX1, MIY1, MIX2, MIY2, -Pi, Pi, Pi/30, aFound) then
begin
MMouse(X, Y, 1, 1);
ClickMouse2(False);
Writeln('Depositing Sardine');
Wait(600+random(250));
Waitoption('ll', 3000);
Wait(1500+random(250));
end;
Herring := DTMFromString('mlwAAAHicY2dgYChkYmAoAuI0IC4F4jogrgXiZiBWA2I5INYGYi0gVgBicSBWBuI1S5cCdTNhxfxAEhdmxIOhAAD0tgbF');
begin
if FindDTMRotated(Herring, x, y, MIX1, MIY1, MIX2, MIY2, -Pi, Pi, Pi/30, aFound) then
begin
MMouse(X, Y, 1, 1);
ClickMouse2(False);
Writeln('Depositing Herring');
Wait(600+random(250));
Waitoption('ll', 3000);
Wait(1500+random(250));
end;
ProgressReport;
end;
FreeDTM(Sardine)
FreeDTM(Herring)
FreeBitmap(Bank)
end;
end;
end;
end;
end;
Procedure GoingToFish;
var
Path: TStringArray;
X, Y, I: Integer;
begin
Path:= ['605:141:4:1:7:611:128:1:7:599:125:1:7:607:140:0:7:623:58'];
for I := 0 to 0 do
ObjDTM_Walk(Path[i], 0, 100, 80, True);
Wait(3000+Random(2000));
end;
begin
Smart_Server := 54;
Smart_Members := False;
Smart_Signed := True;
Smart_SuperDetail := False;
SetupSRL;
Loadvars;
ObjSetup;
Declareplayers;
if not (LoggedIn) then
LoginPlayer;
Repeat
Repeat
Fishing;
WalkingToBank;
DepositFish;
GoingToFish;
Until(False) or (not LoggedIn);
NextPlayer(Players[CurrentPlayer].Active);
Until(false);
end.