I have one.. But if ur high enough defence you can run 5+ hours.. i think
I havent tested with the current SRL rev… But with a small edit u might get it to work
Program CrabFinder;
{.Include SRL/SRL.Scar}
{.Include SRL/SRL/Skill/Fighting.Scar}
Label
Kill;
Var
AttackRock, Couldnt: Integer;
Const
CrabColor = 5137251;
ArrowColor = 857196;
Procedure DeclarePlayers;
Begin
CurrentPlayer:= 0;
HowManyPlayers:= 1;
NumberOfPlayers(HowManyPlayers);
Players[0].Name := '';
Players[0].Pass := '';
Players[0].Nick := '';
Players[0].Active := True;
End;
Function WaitR(Time : Integer) : Boolean;
Var Time1: Integer;
Begin
Marktime(time1)
Repeat
Wait(50);
If(FindTalk)Then
Result := True;
Until(result)or(TimeFromMark(Time1)>Time);
End;
Function FindFastRandoms: Boolean; //by WT-Fakawi
var
i: Integer;
begin
for i:=1 to 8 do
begin
case I of
1: If FindDead then
Result := True;
2: If FindMod then
Result := True;
3: If FindMime then
Result := True;
4: If FindMaze then
Result := True;
5: If FindQuiz then
Result := True;
6: If FindDemon then
Result := True;
7: if NoGameTab then
begin
Result := True;
Logout;
Exit;
end;
8: FindTalk;
end;
end;
end;
Procedure Setup;
Begin
ClearDeBug;
Writeln('Successfully compiled');
SetupSRL;
AttackRock := BitmapFromString(79, 13, 'beNrtlUsOgCAMBbn/pX' +
'UliZQ3qS0aVBoXpoJ0+nmU8k/bDnvgFFxweqKn0N4aQxOMjS2ZECe' +
'sJ+YYLAAu2A/ANmY/KY9ywnagrnHagNUsWz/+JFVZtb6Lo9LiJHJW' +
'HyQu38bQFVc1fyzs8Jm9o7KWYpLKBmA9Mxt49w0+3a0gR9zGLFA6G' +
'xIkIFAZSV/2GtsBzoK0aA==');
MouseSpeed:= 18;
DeclarePlayers;
ActivateClient;
Wait(1000);
If(Not Loggedin)Then LoginPlayer;
FindFastRandoms
End;
Function FindCrab: Boolean;
Var
CrabTPA: TPointArray;
I, Cx, Cy: Integer;
Begin
If(Not loggedin)Then Exit;
Cx := MSCX; Cy:= MSCY;
FindColorsSpiralTolerance(Cx, Cy, CrabTPA, CrabColor, MSX1, MSY1, MSX2, MSY2, 2);
For I:= 0 To GetArrayLength(CrabTPA)-1 Do
Begin
Cx := CrabTPA[I].X;
Cy := CrabTPA[I].Y;
MMouse(Cx, Cy, 0, 0);
WaitR(100+Random(100));
If(IsUpText('/'))Or(IsUpText('more'))Then
Begin
Mouse(Cx, Cy, 0, 0, False);
If(FindBitmap(AttackRock, Cx, Cy))Then
Begin
Mouse(Cx, Cy, 3, 10, True);
Flag;
Result:= true;
WaitR(1000+Random(1000));
Exit;
End Else
If(ChooseOption('Walk here'))Then
Begin
Result:= True;
Flag;
WaitR(1000+Random(1000));
Exit;
End;
End;
End;
End;
Function EquipArrows: Boolean;
Var
X, Y, I: Integer;
ItemTP: TPoint;
Begin
GameTab(4);
For I:= 1 To 28 Do
Begin
ItemTP:= ItemCoords(I);
If(FindColor(X, Y, ArrowColor, ItemTP.X-10, ItemTP.Y-10, ItemTP.X+10, ItemTP.Y+10))Then
Begin
MMouse(ItemTP.X+Random(10)-Random(10), ItemTP.Y+Random(10)-Random(10), 0, 0);
WaitR(10);
GetMousePos(X, Y);
If(IsUpText('ron'))Then
Begin
Result:= True;
Mouse(X, Y, 0, 0, True);
Exit; //Exit the proc....
End;
End;
End;
End;
Function PickUpArrows: Boolean;
Var
DX, DY, ERR, Iron, Bron: Integer;
Begin
If(Not Loggedin)Then Exit;
Repeat
If(FindColorSpiralTolerance(Dx, Dy, ArrowColor, MSCX-100, MSCY-100, MSCX+100, MSCY+100, 1))Then
Begin
MMouse(Dx, Dy, 1, 1);
WaitR(25);
If(IsUpText('rrow'))Then
Begin
Mouse(Dx, Dy, 0, 0, True);
Flag;
WaitR(400+random(500));
Result := True;
End Else
Begin
Iron := BitmapFromString2(False, 'aFCF9278DAED98DB0E83200C8' +
'65FA92207BD5CDC78FF475ABB5D9291425BA7497BF147018BC58F' +
'960800F0D850201D286B7DA1E695AEF3124821A2868D347DC6A49' +
'AA99D3A213E77D4B2D34D499534A2872516BA0EF9A80C8329937B' +
'18996BC76568D5EDBFA6CBC09944B55CB939514E9413E544B9C91' +
'9E09FB5DA5EFEF8391A7F11C53F65C947CEF1ACFB86D6F18EACFC' +
'1821FC765DCF72A2E69EE5F81CE54A6BDE33E3D522AACF0987A8D' +
'1DC684194C59795575E7EC693C4A21B17671F5D21475957BDAB11' +
'65E1DF3ADE11FEAD88D2CD454ED41588E25458BBAA27C9691CD2F' +
'AFB85FF95E527D5BB54BDB93FC3FDD5F8DA1BFC7');
Bron := BitmapFromString2(False, 'a6F39B78DAED57410EC42008F' +
'C12B6E2D6E3A6A9FF7FD28AD74D1304D4EE060ED344A768C874A0' +
'0000EFA302E05961CF84696F1836428815B783101B074BA275DA8' +
'4D81EAFDC100B61BC0002868BDE4A67610488429FA1FFC45C8B71' +
'871E4F085B55ACD51867DDC335E61A738DB9C63C46A8823FB37DE' +
'FF2F9327DF6CE63339932BEFE3EB28AC9983C4E9F66F8EBB699AD' +
'7CACB7B69A9C7C25D8DE6755ADEE39721FE368ACD73F676A6C744' +
'ECD59E3E601BE7FDADD7FBD8F59F5CADFD298CCE534BD72DD3732' +
'4A63B67EF54F1AB3EA714FAED59C5EA9F13D59AFD4CC5A56B3B16' +
'CCE19F167B1B6577E00E97');
Mouse(Dx, Dy ,0, 0, False);
If(FindBitMap(Iron, Dx, Dy))Or
(FindBitMap(Bron, Dx, Dy))Then
Begin
Mouse(Dx, Dy, 10, 3, True);
Flag;
WaitR(400+random(300));
End Else
Begin
ChooseOption('ance');
ERR:= ERR + 1;
End;
FreeBitMap(Iron);
FreeBitMap(Bron);
End;
End;
FindFastRandoms;
Until(Not Loggedin)Or(ERR > 3)Or(Not FindColorSpiralTolerance(Dx, Dy, ArrowColor, MSCX-100, MSCY-100, MSCX+100, MSCY+100, 1))
If(Not EquipArrows)Then
Begin
GameTab(5);
WaitR(400+Random(500));
If(Not FindColor(DX, DY, ArrowColor, MIX1, MIY1, MIX2, MIY2))Then
Logout;
End;
End;
Procedure WalkToSymbolAndBack;
Var
I, X, Y, A: Integer;
Begin
If(Not Loggedin)Then Exit;
WaterColor := FindWaterColor;
X:= MMCX; Y:= MMCY;
If(FindColorSpiral(X, Y, WaterColor, 560, 7, MMCX+30, MMCY+30))Then
Begin
Mouse(X, Y, 0, 0, True);
Flag;
Repeat
If(WaterWalk(290, 255, 50, 10, 0, 10, 0, 0))Then
A := A + 1
Else If(A > 10)Then Logout;
FindFastRandoms;
If(not Loggedin)Then Exit;
Until(FindSymbol(X, Y, 'fish'));
Mouse(X, Y, 0, 0, True);
Flag;
Wait(1000+Random(1000));
For I:= 0 To A Do
Begin
Mouse(699-A*5, 87, 10+Random(A*5)-Random(A*5), 10+Random(A*5)-Random(A*5), True);
Flag;
End;
X:= MMCX; Y:= MMCY;
If(FindColorSpiral(X, Y, WaterColor, 560, 7, MMCX, MMCY))Then
Begin
Mouse(X, Y, 0, 0, True);
Flag;
End Else Logout;
Writeln('Did a Walk away from rock crabs');
End Else Logout;
End;
Begin
Setup;
Kill:
FindFastRandoms;
If(Not Loggedin)Then TerminateScript;
If(FindCrab)Then
Begin
If(InFight)Then
Begin
Repeat
If(Random(5)>3)Then
SleepAndMoveMouse(400+Random(500))
Else WaitR(400+Random(500));
FindNormalRandoms;
Until(Not InFight);
Couldnt := 0;
FindFastRandoms
//PickUpArrows;
End;
End Else Begin Wait(1000+Random(200)); If(Couldnt > 20)Then Logout; End;
Couldnt := Couldnt + 1;
If(Couldnt > 10)Then
WalkToSymbolAndBack;
Goto Kill;
End.
When the rock crabs are not attacking you anymore it tries to walk to the bridge and back but u might have to edit that part a bit.