SRL Archive - RS3 Outdated / Broken Scripts

Zephyr's Karamja Fisher w/ Reflection


Shady?

2008-09-19 14:58:50

Okay, i updated his script because it is great :) Zephyr, if you have any problem with this, just delete it, and sorry for posting


{------------------------------------------------------------------------------]
._________.
\____ \ __
/ / | | ____
/ / _____ ._______ | |____.___ ___.____\ /______
/ / / ___ \ ___ \ _ \ \/ / _ \/ ____/
./ /__\ ____/| ___/ | | |\ /| | \_/\____ \
\_________\______\| | |__| |__| \ / |__| /______/
|___| Ver 1.0 /__/ Karamja Fisher

By ZephyrsFury

[------------------------------------------------------------------------------]
[ >>>> DESCRIPTION <<<< ]
[------------------------------------------------------------------------------]
Will fish you Lobsters, Swordfish and Tuna in Karamja and bank in Draynor.
Uses Reflection - a new method of autoing that 'spies' on the RS client using
SMART to retrieve information that can be manipulated for our benefit.
[------------------------------------------------------------------------------]
[ >>>> CURRENT FEATURES <<<< ]
[------------------------------------------------------------------------------]
o Reflection - Uses Reflection.
o Antiban - Includes the most recent and effective antiban.
o Multi-player - Well whats the good of autoing with one char?
[------------------------------------------------------------------------------]
[ >>>> INSTRUCTIONS <<<< ]
[------------------------------------------------------------------------------]
1. Make sure you have the Reflection includes.
2. Start with the necessary fishing equipment plus coins in your inv.
3. Have extra fishing gear and coins in your bank.
4. Declare your players.
5. Place your players at the Bank/Port Sarim/Karamja Dock/Fishing Spots or
anywhere along the path. (Script will auto-detect your position).
6. Start the script!
[------------------------------------------------------------------------------]
[ >>>> ADDITIONAL CREDITS <<<< ]
[------------------------------------------------------------------------------]
o SRL Developers - For the best RS Cheating library and community.
o Jagex - Couldn't have done it without you or your game.
o Reflection Devs - Thanks for the Reflection includes.
[------------------------------------------------------------------------------]
[ I DO NOT AND WILL NOT TAKE RESPONSIBILITY FOR ANY ACTION TAKEN AGAINST YOUR ]
[ ACCOUNT(S) AS A RESULT OF USING MY SCRIPT. USE IT AT YOUR OWN RISK!!! ]
[ ]
[ PLEASE DON'T POST THIS SCRIPT ON ANY OTHER WEBSITES WITHOUT MY KNOWLEDGE ]
[ AND CONSENT. PM ZephyrsFury ON srl-forums.com. ]
[------------------------------------------------------------------------------}
program New;
{.include SRL/SRL/misc/SMART.scar}
{.include SRL/SRL.scar}
{.include SRL/SRL/Reflection/Reflection.scar}

const
SmartWorldNo = 119; //The world on which you want to auto.
Signed = True; //Signed Java Client?
SRLStatsID = ''; //SRL Stats ID
SRLStatsPass = ''; //SRL Stats Password

procedure DeclarePlayers;
begin

NumberOfPlayers(1);
CurrentPlayer := 0;

Players[0].Name := ''; //Player username
Players[0].Pass := ''; //Player password
Players[0].Nick := ''; //4 - 5 chars to minimise probs with the autoresponder
Players[0].Active := True; //Is the player active (do you want to auto on this acc)?
Players[0].Pin := ''; //Bank Pink, leave as '' for no bank pin... MUST BE A STRING!
Players[0].Integers[0] := 5; //Loads before switching. Less loads = less randoms
Players[0].Strings[0] := 'Cage'; //'Cage', 'Harpoon' or 'Highest''

end;

{------------------------------------------------------------------------------]
[ ]
[ DON'T HAVE TO TOUCH ANYTHING BELOW HERE ]
[ ]
[------------------------------------------------------------------------------}
//Integers[10] := PlayerFishCount;
//Integers[11] := TotalLoadCount;
//Integers[12] := PlayerMins

type
TFishEquip = record
Name, Text: string;
Level, DTM, FishDTM: Integer;
end;

var
x, y, Sx, Sy, I, T, C: Integer;
FishEquip: TFishEquip;
Paths: array of T2DPointArray;
AntiBanMark, RunTime, TabsCountTo, TabsCounter: Integer;
FishCount, TotalFishCount, TotalLoads, LevelsGained, CurLoads: Integer;
TotalLobCount, TotalTunaCount, TotalSwordCount: Integer;
LobDTM, TunaDTM, SwordDTM, CoinBitmap: Integer;
TP: TPoint;

const
TestMode = False;
TakeScreenshots = False;
VerNumber = '1.0';

procedure LoadPaths;
begin
SetLength(Paths, 2);

SetLength(Paths[0], 2); //Bank to Port Sarim
Paths[0][0] := [
Point(3092, 3245),
Point(3082, 3251),
Point(3072, 3260),
Point(3060, 3264),
Point(3047, 3263),
Point(3041, 3252),
Point(3032, 3243),
Point(3028, 3230),
Point(3029, 3217)
];
Paths[0][1] := [
Point(3092, 3245),
Point(3078, 3250),
Point(3072, 3262),
Point(3057, 3264),
Point(3054, 3251),
Point(3042, 3243),
Point(3029, 3236),
Point(3028, 3225),
Point(3029, 3217)
];

SetLength(Paths[1], 2); //Karamja Dock to Fishing spots
Paths[1][0] := [
Point(2956, 3146),
Point(2942, 3145),
Point(2929, 3152),
Point(2917, 3151),
Point(2914, 3164),
Point(2924, 3172),
Point(2924, 3180)
];
Paths[1][1] := [
Point(2956, 3146),
Point(2941, 3146),
Point(2928, 3151),
Point(2918, 3158),
Point(2921, 3169),
Point(2924, 3180)
];

end;

{------------------------------------------------------------------------------]
[ procedure LoadDTMs; ]
[ by: ZephyrsFury ]
[ Description: Loads the required DTMs. ]
{------------------------------------------------------------------------------}
procedure LoadDTMs;
begin
LobDTM := DTMFromString('78DA630C646660906664400665CEB20C3A402' +
'190E87F20607406AA5142550391859140DA1BA8468C809A50A01A' +
'61026AC2816A2409A88904AA5121A006E42F0D026A7C806A94F1A' +
'B01003C1408A6');
TunaDTM := DTMFromString('78DA63F467666070646440064B67CD64D0010' +
'A8144FF0301A313508D17AA1A882C8C04D29E40353E04D48401D5' +
'B81050E30D546343404D20116A62816A9CF0AB010081E40A30');
SwordDTM := DTMFromString('78DA6354676660106764400627E65D60D0010' +
'A8144FF0301A338508D06AA1A882C8C04D29A40355204D4E803D5' +
'281250630A54234D408D1C508D2401356A40357C04D4E801D508E' +
'3570300DFF208A3');
CoinBitmap := LoadCoinBMP;
end;

{------------------------------------------------------------------------------]
[ procedure TakeScreenie(s: string); ]
[ by: ZephyrsFury ]
[ Description: Takes a screenshot. ]
{------------------------------------------------------------------------------}
procedure TakeScreenie(s: string);
begin
if (not(TakeScreenShots)) then Exit;
try
SaveScreenShot(ScriptPath + s + ' = ' + TheDate(3) + ' = ' + TimeRunning + '.bmp');
WriteLn('Screenshot saved: ' + ScriptPath + s + ' = ' + TheDate(3) + ' = ' + TimeRunning + '.bmp');
except
WriteLn('Failed to save screenshot: ' + s);
end;
end;

function ClickObject(id :integer): boolean;
var
xx : TPoint;
begin
if FindObject(xX,id) then
begin
Result:= True;
XX:= TileToMS(XX, 0);
Mouse(xX.x,xX.y,2,2,true);
Wait(30 + Random(10));
FindNormalRandoms;
end;
end;

{------------------------------------------------------------------------------]
[ procedure WriteDebug(Text: string); ]
[ by: ZephyrsFury ]
[ Description: Writes to the Debug box or status bar depending on TestMode. ]
{------------------------------------------------------------------------------}
procedure WriteDebug(Text: string);
begin
case TestMode of
True: Writeln(Players[CurrentPlayer].Loc + ' - ' + Text);
False: Status(Players[CurrentPlayer].Loc + ' - ' + Text);
end;
end;

{------------------------------------------------------------------------------]
[ function TimeToGo: Boolean; ]
[ by: ZephyrsFury ]
[ Description: Returns true when its time to go. ]
{------------------------------------------------------------------------------}
function TimeToGo: Boolean;
begin
Result := ((CurLoads mod Players[CurrentPlayer].Integers[0] = 0) and (CurLoads <> 0))
or (not(LoggedIn));
end;

{------------------------------------------------------------------------------]
[ pprocedure ProgressReport; ]
[ by: ZephyrsFury ]
[ Description: Displays the progress report. ]
{------------------------------------------------------------------------------}
procedure ProgressReport;
var
SNick, SLvl, SLoads, SFish, STime, SAct, SLoc: string;
DateTime, Temp2, Top, Temp1: string;
Spaces, PlayerMin, Exp: Integer;
begin

DateTime := '[' + TheDate(1) + ', ' + TheTime + ']';
Spaces := 86 - Length(DateTime);
Temp1 := DateTime;
for i := 0 to Ceil(Spaces / 2) - 1 do
Insert(' ', Temp1, 2);
Temp2 := Temp1;
for i := 0 to Floor(Spaces / 2) - 1 do
Insert(' ', Temp2, Length(Temp1));
Top := '[------------------------------------------------------------------------------------]';
WriteLn('');
WriteLn(Top);
WriteLn(Temp2);
WriteLn('[------------------------------------------------------------------------------------]');
WriteLn('[ >>> Zephyr`s Karamja Fisher Ver '+VerNumber+' <<< ]');
WriteLn('[------------------------------------------------------------------------------------]');
WriteLn(PadR('[ Total Time Running: ' + TimeRunning, 85) + ']');
WriteLn(PadR('[ Total Loads Done: ' + IntToStr(TotalLoads), 85) + ']');
WriteLn(PadR('[ Total Fish Caught: ' + IntToStr(TotalFishCount), 85) + ']');
if (TotalLobCount > 0) then
WriteLn(PadR('[ o Lobsters: ' + IntToStr(TotalLobCount), 85) + ']');
if (TotalSwordCount > 0) then
WriteLn(PadR('[ o Swordfish: ' + IntToStr(TotalSwordCount), 85) + ']');
if (TotalTunaCount > 0) then
WriteLn(PadR('[ o Tuna: ' + IntToStr(TotalTunaCount), 85) + ']');
WriteLn(PadR('[ Fishing Rate: ' + IntToStr(Round((TotalFishCount * 3600) / (GetTimeRunning / 1000))) + ' Fish/Hr', 85) + ']');
Exp := (TotalLobCount * 90) + (TotalSwordCount * 100) + (TotalTunaCount * 80);
WriteLn(PadR('[ Total Fishing Exp Gained: ' + IntToStr(Exp), 85) + ']');
WriteLn(PadR('[ Experience Gain Rate: ' + IntToStr(Round((Exp * 3600) / (GetTimeRunning / 1000))) + ' Exp/Hr', 85) + ']');
WriteLn(PadR('[ Fishing Levels Gained: ' + IntToStr(LevelsGained), 85) + ']');
WriteLn('[------------------------------------------------------------------------------------]');
WriteLn('[ | Nick | Act | Loc | Lvl | Loads | Fish | Time ]');
PlayerMin := Round(TimeFromMark(RunTime) / 1000 / 60);
Players[CurrentPlayer].Integers[12] := Players[CurrentPlayer].Integers[12] + PlayerMin;
MarkTime(RunTime);

for i := 0 to High(Players) do
begin
SNick := PadR(' ' + Players[i].Nick, 6);
SAct := PadR(' ' + BoolToStr(Players[i].Active)[1], 5);
SLoc := PadR(' ' + Players[i].Loc, 34);
SLvl := PadR(' ' + IntToStr(Players[i].Level[17]), 6);
SLoads := PadR(' ' + IntToStr(Players[i].Integers[11]), 7);
SFish := PadR(' ' + IntToStr(Players[i].Integers[10]), 6);
STime := ' ' + IntToStr(Players[i].Integers[12]) + ' min';

WriteLn(PadR('[ o |' + SNick + '|' + SAct + '|' + SLoc + '|' + SLvl +
'|' + SLoads + '|' + SFish + '|' + STime, 85) + ']');
end;
WriteLn('[------------------------------------------------------------------------------------]' );
WriteLn('');
SRLRandomsReport;
end;

{------------------------------------------------------------------------------]
[ procedure AntiBanProc; ]
[ by: ZephyrsFury ]
[ Description: Does antiban. ]
{------------------------------------------------------------------------------}
procedure AntiBanProc;
var
Dx, Dy, j, k, Chance: Integer;
TP: TPoint;
begin
if (not(LoggedIn)) then Exit;
if (TimeFromMark(AntiBanMark) < 30000 + Random(10000)) then Exit;
Chance := Random(40) + 1;
case (Chance) of
1: begin
WriteDebug('Antiban 1');
GetClientDimensions(x, y);
MMouse(Random(x), Random(y), 0, 0);
Wait(200 + random(100));
if (IsUpText('opti')) then
begin
GetMousePos(Dx, Dy);
Mouse(Dx, Dy, 0, 0, false);
Wait(200 + random(100));
ChooseOption('xamine');
end;
Wait(1000 + Random(500));
end;
2: begin
if (Random(5) = 1) then
begin
WriteDebug('Antiban 2');
HoverSkill('random', false);
GameTab(4);
end;
end;
3: begin
if (Random(5) = 1) then
begin
WriteDebug('Antiban 3');
HoverSkill('fishing', false);
GameTab(4);
end;
end;
4: begin
if (InvCount < 1) then Exit;
j := Random(28) + 1;
if (ExistsItem(j)) then
begin
WriteDebug('Antiban 4');
TP := ItemCoords(j);
Mouse(TP.x, TP.y, 0, 0, false);
Wait(200 + random(100));
ChooseOption('xamine');
Wait(1000);
Wait(1000 + Random(500));
end;
end;
5: begin
WriteDebug('Antiban 5');
PickUpMouse;
Wait(500 + Random(500));
end;
6: begin
WriteDebug('Antiban 6');
GetClientDimensions(Dx, Dy);
MMouse(Random(Dx) + 1, Random(Dy) + 1, 0, 0);
Wait(500 + random(500));
end;
7: begin
WriteDebug('Antiban 7');
GameTab(Random(14) + 1);
Wait(500 + Random(500));
GameTab(4);
end;
8: begin
WriteDebug('Antiban 8');
SleepAndMoveMouse(5000 + Random(1000));
end;
9: begin
if (Random(5) <> 0) then Exit;
if (GetColor(500, 361) <> 1975337) then Exit;
WriteDebug('Antiban 9');
k := Random(3) + 1;
for I := 0 to k do
begin
if (GetColor(500, 361) <> 1975337) then Break;
j := RandomRange(523, 2127);
MarkTime(T);
MouseBox(498, 348, 507, 357, 3);
GetMousePos(x, y);
HoldMouse(x, y, True);
while (TimeFromMark(T) < j) do
Wait(1);
ReleaseMouse(x, y, True);
if (Random(3) = 0) then
MouseBox(x - 50, y - 50, x + 50, y + 50, 3);
Wait(1000 + Random(1500));
end;
FixChat;
end;
10: begin
if (Players[CurrentPlayer].Loc <> 'Fish') then Exit;
WriteDebug('Antiban 10');
k := Random(6);
for I := 0 to k do
begin
case I of
0: R_MakeCompass(IntToStr(Round(GetMinimapAngleDeg) - 90 + Random(181)));
{1: R_SetAngle(RandomRange(0, 50));}
2: R_MakeCompass(IntToStr(Round(GetMinimapAngleDeg) - 30 + Random(61)));
{3: R_SetAngle(RandomRange(25, 75));}
4: R_MakeCompass(IntToStr(Round(GetMinimapAngleDeg) - 45 + Random(91)));
{5: R_SetAngle(RandomRange(50, 100));}
end;
end;
if (Random(4) = 0) then {R_}SetAngle(True);
if (Random(4) = 1) then R_MakeCompass('N');
end;
else Exit;
end;
MarkTime(AntiBanMark);
end;

{------------------------------------------------------------------------------]
[ function GetClosestTileInPath(Path: TPointArray): Integer; ]
[ by: ZephyrsFury ]
[ Description: Returns the array index of the Point in the TPA closest to us. ]
{------------------------------------------------------------------------------}
function GetClosestTileInPath(Path: TPointArray): Integer;
var
x, y, Last, II, Dist: Integer;
Me : Tme;
begin
Me := GetMe;
Last := 1 shl 20;
for II := 0 to High(Path) do
begin
Dist := Distance(Me.tile.x, Me.tile.y, Path[II].x, Path[II].y);
if (Dist > Last) then Continue;
Last := Dist;
Result := II;
end;
end;

{------------------------------------------------------------------------------]
[ function WalkMyPath(Path: TPointArray; FirstToLast: Boolean): Boolean; ]
[ by: ZephyrsFury ]
[ Description: Walks a path using reflection. ]
{------------------------------------------------------------------------------}
function WalkMyPath(Path: TPointArray; FirstToLast: Boolean): Boolean;
var
Closest, Nxt, LastPt, Incr, Att: Integer;
begin
LastPt := High(Path) * Integer(FirstToLast);
Incr := Integer(FirstToLast) * 2 - 1;
Closest := GetClosestTileInPath(Path);
if (DistanceFrom(Path[Closest]) > 3) then
if (not(WalkToTile(Path[Closest], 5, 3))) then
begin
WriteLn('Too far from Path to start walking...');
Exit;
end else
begin
AntiBanProc;
{R_}FFlag(10);
FindNormalRandoms;
end;
Att := 0;
while (GetClosestTileInPath(Path) <> LastPt) do
begin
Nxt := GetClosestTileInPath(Path) + Incr;
WriteLn('Walking to Path Index: ' + IntToStr(Nxt) + ' (' + IntToStr(Path[Nxt].x) +', ' + IntToStr(Path[Nxt].y) + ').');
if (not(WalkToTile(Path[Nxt], 5, 3))) then
begin
if (Att > 3) then Break;
Inc(Att);
while (CharacterMoving) do
Wait(100);
FindNormalRandoms;
end else Att := 0;
AntiBanProc;
{R_}FFlag(10);
FindNormalRandoms;
end;
Result := GetClosestTileInPath(Path) = LastPt;
end;

{------------------------------------------------------------------------------]
[ function GetPlayerLoc: string; ]
[ by: ZephyrsFury ]
[ Description: Returns the players location based on your position on the map.]
{------------------------------------------------------------------------------}
function GetPlayerLoc: string;
var
px, py, J, Closest, L: Integer;
cPath: TPointArray;
Me : Tme;
begin
Result := '';
Me := GetMe;
L := 10;
if (PointInBox(Point(Me.tile.x, Me.tile.y), IntToBox(3092 - L, 3243 - L, 3092 + L, 3243 + L))) then
Result := 'Bank'
else
if (PointInBox(Point(Me.tile.x, Me.tile.y), IntToBox(3028 - L, 3220 - L, 3028 + L, 3220 + L))) then
Result := 'Sarim'
else
if (PointInBox(Point(Me.tile.x, Me.tile.y), IntToBox(2956 - L, 3146 - L, 2956 + L, 3146 + L))) then
Result := 'Karamja'
else
if (PointInBox(Point(Me.tile.x, Me.tile.y), IntToBox(2924 - L, 3180 - L, 2924 + L, 3180 + L))) then
Result := 'Fish'
else
begin
for I := 0 to High(Paths) do
for J := 0 to High(Paths[i]) do
begin
cPath := Paths[i][J];
Closest := GetClosestTileInPath(cPath);
if (TileOnMM(cPath[Closest])) then
begin
WalkToTile(cPath[Closest], 5, 3);
{R_}FFlag(0);
Result := 'On Path ' + IntToStr(I);
Exit;
end;
end;
end;
end;

{------------------------------------------------------------------------------]
[ function OpenTheBank: Boolean; ]
[ by: ZephyrsFury ]
[ Description: Opens the bank. ]
{------------------------------------------------------------------------------}
function OpenTheBank: Boolean;
begin
if (not(LoggedIn)) then Exit;
if (BankScreen) then
begin
Result := True;
Exit;
end;
WriteDebug('Opening Bank');
if (OpenBankReflection('db')) then
begin
Wait(500 + Random(1000));
Result := True;
Exit;
end else
if (OpenBank('db', False, False)) then
begin
Wait(500 + Random(1000));
Result := True;
Exit;
end;
end;

{------------------------------------------------------------------------------]
[ function FindFishingGear: Boolean; ]
[ by: ZephyrsFury ]
[ Description: Returns true if you have the required gear and money. ]
{------------------------------------------------------------------------------}
function FindFishingGear: Boolean;
var
Amt: Integer;
begin
GameTab(4);
case (GetPlayerLoc) of
'Karamja', 'Fish', 'On Path 1': Amt := 30;
else Amt := 60;
end;
Result := FindDTM(FishEquip.DTM, x, y, MIX1, MIY1, MIX2, MIY2) and (CoinAmount('inv') >= Amt);
end;

{------------------------------------------------------------------------------]
[ procedure ArrangeFishingGear; ]
[ by: ZephyrsFury ]
[ Description: Arranges the gear in inventory. ]
{------------------------------------------------------------------------------}
procedure ArrangeFishingGear;
begin
if (FindDTM(FishEquip.DTM, x, y, MIX1, MIY1, MIX2, MIY2)) then
begin
I := CoordsToItem(x, y);
if (I <> 1) then DragItem(i, 1);
end;
Wait(500 + Random(500));
if (FindBitmapToleranceIn(CoinBitmap, x, y, MIX1, MIY1, MIX2, MIY2, 50)) then
begin
I := CoordsToItem(x, y);
if (I <> 2) then DragItem(i, 2);
end;
Wait(500 + Random(500));
end;

{------------------------------------------------------------------------------]
[ function GetFishingGear: Boolean; ]
[ by: ZephyrsFury ]
[ Description: Finds the fishing gear and gets it from the bank if that fails.]
{------------------------------------------------------------------------------}
function GetFishingGear: Boolean;
var
T, WithdrawAmt: Integer;
begin
if (not(LoggedIn)) then Exit;
if (not(FindFishingGear)) then
begin
if (GetPlayerLoc <> 'Bank') then Exit;
if (not(BankScreen)) then
begin
OpenTheBank;
if PinScreen then InPin(Players[CurrentPlayer].Pin);
end;
if (BankScreen) then
begin
if (not(FindDTM(FishEquip.DTM, x, y, MIX1, MIY1, MIX2, MIY2))) then
begin
WriteLn('Withdrawing ' + FishEquip.Name + '...');
SearchBank(Lowercase(FishEquip.Name));
Wait(500 + Random(500));
if (FindDTM(FishEquip.DTM, x, y, MSX1, MSY1, MSX2, MSY2)) then
begin
Mouse(x, y, 5, 5, True);
T := GetSystemTime;
while (not(FindDTM(FishEquip.DTM, x, y, MIX1, MIY1, MIX2, MIY2))) and (GetSystemTime - T < 3000) do
Wait(200);
WriteLn('Withdrew ' + FishEquip.Name + '.');
end;
end;
if (CoinAmount('inv') < 60) then
begin
WriteLn('Withdrawing Coins...');
SearchBank('coins');
Wait(500 + Random(500));
if (FindBitmapToleranceIn(CoinBitmap, x, y, 30, 87, 476, 286, 50)) then
begin
Mouse(x, y, 5, 5, False);
Wait(200 + Random(200));
ChooseOption('raw-X');
Wait(500 + Random(500));
WithdrawAmt := RandomRange(500, 1000);
TypeSend(IntToStr(WithdrawAmt));
WriteLn('Withdrew ' + IntToStr(WithdrawAmt) + ' coins.');
T := GetSystemTime;
while (CoinAmount('inv') < 60) and (GetSystemTime - T < 3000) do
Wait(200);
end;
Wait(500 + Random(500));
end;
end;
CloseBank;
Result := FindFishingGear;
end else Result := True;
ArrangeFishingGear;
end;

{------------------------------------------------------------------------------]
[ function LostFishingGear: Boolean; ]
[ by: ZephyrsFury ]
[ Description: Checks to see if you've lost your gear. ]
{------------------------------------------------------------------------------}
function LostFishingGear: Boolean;
begin
if (not(FindColor(x, y, 0, 7, 460, 69, 474))) then
Result := (not(FindFishingGear));
if (Result) then
ClickContinue(True, True);
end;

{------------------------------------------------------------------------------]
[ function FindWhirlPool(ax, ay: Integer): Boolean; ]
[ by: ZephyrsFury ]
[ Description: Finds Whirlpools on Tile (ax, ay). ]
{------------------------------------------------------------------------------}
function FindWhirlPool(ax, ay: Integer): Boolean;
var
WhirlPool: array of TNPC;
II: Integer;
begin
WhirlPool := SortNPCs(GetNPCs);
for II := 0 to High(WhirlPool) do
if (WhirlPool[II].Ms.X = ax) and (WhirlPool[II].Ms.Y = ay) then
begin
Result := (WhirlPool[II].NPCType = 405);
if (Result) then Exit;
end;
end;

{------------------------------------------------------------------------------]
[ function Fishing: Boolean; ]
[ by: ZephyrsFury ]
[ Description: Returns true if you're currently fishing with a cage or harpoon]
{------------------------------------------------------------------------------}
function Fishing: Boolean;
var Me : Tme;
begin
Me := GetMe;
Result := (InRange(Me.Animation, 618, 619));
end;

{------------------------------------------------------------------------------]
[ function ClickFishingSpot(var ax, ay: Integer): Boolean; ]
[ by: ZephyrsFury ]
[ Description: Finds and clicks a Cage/Harpoon fishing spot. ]
{------------------------------------------------------------------------------}
function ClickFishingSpot(var ax, ay: Integer): Boolean;
var
fsNPC: array of TNPC;
Tx, Ty, II, T: Integer;
begin
FindNormalRandoms;
fsNPC := SortNPCs(GetNPCsByID(324));
if (Length(fsNPC) = 0) then
begin
WriteDebug('Could not find fishing spot!');
Exit;
end;
for II := 0 to High(fsNPC) do
begin
x := 0; y := 0;
{ if (TileOnMS(fsNPC[II], fsNPC[II].Height)) then
TileToMS(fsNPC[II], fsNPC[II].Height); }
x := fsNPC[II].Ms.X; y := fsNPC[II].Ms.Y;
ax := fsNPC[II].Ms.X; ay := fsNPC[II].Ms.Y;
if (FindWhirlPool(ax, ay)) then Continue;
if (x = 0) and (y = 0) then
begin
WriteDebug('Fishing spot not on MS.');
// TileToMM(fsNPC[II]);
Mouse(fsNPC[II].MM.X, fsNPC[II].MM.Y, 4, 4, True);
{R_}FFlag(0);
MMouse(fsNPC[II].Ms.X, fsNPC[II].Ms.Y, 0, 0);
Result := ClickFishingSpot(ax, ay);
Exit;
end;
WriteDebug('Found fishing spot at ' + IntToStr(x) + ', ' + IntToStr(y) + '.');
Mouse(x, y, 0, 0, False);
Wait(100 + Random(100));
if (ChooseOption(FishEquip.Text)) then
begin
T := GetSystemTime;
while (not(Fishing)) and (GetSystemTime - T < 3000) do
Wait(100);
if (Fishing) then Break;
end;
end;
Result := (Length(fsNPC) > 0) and (II <= High(fsNPC));
end;

{------------------------------------------------------------------------------]
[ procedure HandleTalk; ]
[ by: ZephyrsFury ]
[ Description: Handles talk with the Seaman and Customs officer. ]
{------------------------------------------------------------------------------}
procedure HandleTalk;
var
Messages: TStringArray;
II: Integer;
begin
Messages := ['Yes', 'journey', 'nothing', 'Ok.'];
while (not(FindColor(x, y, 0, 7, 460, 69, 474))) do
begin
ClickContinue(True, True);
for II := 0 to High(Messages) do
if (FindTextTPA(0, 0, MCX1, MCY1, MCX2, MCY2, Messages[II], NPCChars, ClickLeft)) then
Wait(500 + Random(500));
end;
end;

{------------------------------------------------------------------------------]
[ function TalkToNPC(Who: string): Boolean; ]
[ by: ZephyrsFury ]
[ Description: Talks to the 'Seaman' or the 'Customs officer'. ]
{------------------------------------------------------------------------------}
function TalkToNPC(Who: string): Boolean;
var
NPC: TNPC;
Tx, Ty: Integer;
begin
{R_}FFlag(0);
for c := 0 to 2 do
if (FindNPC(Who, NPC)) then
begin
x := 0; y := 0;
x := NPC.MS.X;
y := NPC.MS.Y;
if (x = 0) and (y = 0) then
begin
WriteDebug(Who + ' is not on the main screen.');
// TileToMM(NPC.TileX, NPC.TileY, Tx, Ty);
Mouse(NPC.MM.X, NPC.MM.Y, 5, 5, True);
{R_}FFlag(0);
while (CharacterMoving) do
Wait(100);
Result := TalkToNPC(Who);
Exit;
end;
WriteDebug('Found ' + Who + ' at ' + IntToStr(x) + ', ' + IntToStr(y) + '.');
Mouse(x, y, 0, 0, False);
Wait(100 + Random(100));
if (ChooseOption('Pay')) then
begin
FFlag(0);
while (CharacterMoving) do
Wait(100);
Wait(1000 + Random(1000));
HandleTalk;
T := GetSystemTime;
while (CountColor(65536, MMX1, MMY1, MMX2, MMY2) < 10000) and (GetSystemTime - T < 5000) do
Wait(100);
Result := (CountColor(65536, MMX1, MMY1, MMX2, MMY2) > 10000);
if (Result) then Exit;
end;
end else WriteDebug('Could not find ' + Who + '!');
end;

{------------------------------------------------------------------------------]
[ function CrossGangPlank: Boolean; ]
[ by: ZephyrsFury ]
[ Description: Finds and clicks the gangplank on the boat to/from Karamja. ]
{------------------------------------------------------------------------------}
function CrossGangPlank: Boolean;
var
py, II: Integer;
px: Tpoint;
Me : Tme;
begin
for II := 0 to 3 do
begin
Me := getMe;
case (GetPlayerLoc) of
'Sarim': TP := Point(Me.tile.x - 1, Me.tile.y);
'Karamja': TP := Point(Me.tile.x, Me.tile.y + 1);
end;
{R_}SetAngle(True);
px := TileToMS(TP, 0);
MMouse(px.X, px.y, 0, 0);
Wait(100 + Random(50));
if (IsUpText('Cross')) then
begin
Mouse(px.X, px.y, 0, 0, True);
T := GetSystemTime;
while (CountColor(65536, MMX1, MMY1, MMX2, MMY2) >= 10000) and (GetSystemTime - T < 5000) do
Wait(100);
Result := (CountColor(65536, MMX1, MMY1, MMX2, MMY2) < 10000);
if (Result) then Exit;
end;
Wait(1000 + Random(500));
end;
end;

{------------------------------------------------------------------------------]
[ procedure CheckLevel; ]
[ by: ZephyrsFury ]
[ Description: Checks for level-ups. ]
{------------------------------------------------------------------------------}
procedure CheckLevel;
var
TempLevel, LvlDiff: Integer;
Me: Tme;
begin
if (not(LoggedIn)) then Exit;
Me := GetMe;
TempLevel := Me.levels[10];
LvlDiff := (TempLevel - Players[CurrentPlayer].Level[17]);
if (LvlDiff > 0) then
begin
WriteLn('We gained a level!');
IncEx(ReportVars[4], LvlDiff);
IncEx(LevelsGained, LvlDiff);
Players[CurrentPlayer].Level[17] := TempLevel;
SRLRandomsReport;
ClickContinue(True, True);
end;
end;

{------------------------------------------------------------------------------]
[ procedure Location(PLoc: string); ]
[ by: ZephyrsFury ]
[ Description: Sets the players location to PLoc. ]
{------------------------------------------------------------------------------}
procedure Location(PLoc: string);
begin
Players[CurrentPlayer].Loc := PLoc;
WriteLn('Location: ' + PLoc);
end;

{------------------------------------------------------------------------------]
[ procedure WeAreLost(PlayerLoc: string); ]
[ by: ZephyrsFury ]
[ Description: Logs out, sets Player.Active to false and Loc to PlayerLoc. ]
{------------------------------------------------------------------------------}
procedure WeAreLost(PlayerLoc: string);
begin
TakeScreenie(PlayerLoc);
if (Players[CurrentPlayer].Rand <> '') then
begin
Location(Players[CurrentPlayer].Rand);
Players[CurrentPlayer].Active := False;
LogOut;
end else
begin
Location('Lost - ' + PlayerLoc);
Players[CurrentPlayer].Active := False;
LogOut;
end;
end;

{------------------------------------------------------------------------------]
[ procedure Intro; ]
[ by: ZephyrsFury ]
[ Description: Displays intro. ]
{------------------------------------------------------------------------------}
procedure Intro;
begin
WriteLn('');
WriteLn(' ._________. ');
Wait(100);
WriteLn(' \____ \ __ ');
Wait(100);
WriteLn(' / / | | ____ ');
Wait(100);
WriteLn(' / / _____ ._______ | |____.___ ___.____\ /______ ');
Wait(100);
WriteLn(' / / / ___ \ ___ \ _ \ \/ / _ \/ ____/ ');
Wait(100);
WriteLn(' ./ /__\ ____/| ___/ | | |\ /| | \_/\____ \ ');
Wait(100);
WriteLn(' \_________\______\| | |__| |__| \ / |__| /______/ ');
Wait(100);
WriteLn(' |___| Ver ' + VerNumber + ' /__/ Karamja Fisher ');
WriteLn('');

Status('Zephyr''s Karamja Fisher ' + VerNumber);
end;

{------------------------------------------------------------------------------]
[ procedure ScriptTerminate; ]
[ by: ZephyrsFury ]
[ Description: Called when the script terminates. ]
{------------------------------------------------------------------------------}
procedure ScriptTerminate;
begin
FreeDTM(LobDTM);
FreeDTM(SwordDTM);
FreeDTM(TunaDTM);
ProgressReport;
Writeln('Thanks for using Zephyr''s Karamja Fisher');
end;

{------------------------------------------------------------------------------]
[ procedure SetupScript; ]
[ by: ZephyrsFury ]
[ Description: Sets up the script. ]
{------------------------------------------------------------------------------}
procedure SetupScript;
begin
ClearDebug;
Intro;
SmartSetupEx(SmartWorldNo, False, Signed, False);
SetTargetDC(SMARTGetDC);
SetupSRL;
ScriptID := '942';
SRLID := SRLStatsID;
SRLPassword := SRLStatsPass;
for I := 0 to High(Players) do
begin
Players[i].Loc := Capitalize(Players[i].Loc);
Players[i].Strings[0] := Capitalize(Players[i].Strings[0]);
end;
LoadDTMs;
LoadPaths;
DeclarePlayers;
LoginPlayer;
{SetAudioOff;}
end;

{------------------------------------------------------------------------------]
[ procedure SetupPlayer; ]
[ by: ZephyrsFury ]
[ Description: Sets up the players. ]
{------------------------------------------------------------------------------}
procedure SetupPlayer;
var
me: Tme;
begin
Me := GetMe;
CurLoads := 0;
MarkTime(AntiBanMark);
MarkTime(RunTime);
R_MakeCompass('n');
{R_}SetAngle(True);
Players[CurrentPlayer].Level[17] := Me.Levels[10];
Players[CurrentPlayer].Level[8] := Me.Levels[3];
WriteLn('Fishing Level is ' + IntToStr(Players[CurrentPlayer].Level[17]));
if (Players[CurrentPlayer].Level[17] < FishEquip.Level) then
begin
WeAreLost('Too Low Fishing');
Exit;
end;
if (Players[CurrentPlayer].Strings[0] = 'Highest') then
begin
if (InRange(Players[CurrentPlayer].Level[17], 40, 49)) then
Players[CurrentPlayer].Strings[0] := 'Cage'
else
Players[CurrentPlayer].Strings[0] := 'Harpoon';
end;
case (Players[CurrentPlayer].Strings[0]) of
'Cage': with FishEquip do
begin
Name := 'Lobster Pot';
Text := 'Cage';
Level := 40;
DTM := DTMFromString('78DA63D46564608805622490E0C4C3A003140' +
'289FE0702462D202B10550D4416460269054C7330D4280159C904' +
'D4180159D904D4D8005971F8D500000A9A0833');
end;
'Harpoon': with FishEquip do
begin
Name := 'Harpoon';
Text := 'Harpoon';
Level := 35;
DTM := DTMFromString('78DA63D46364608801622490E0C1C3A003140' +
'289FE07024655202B07550D44164602694D202B81801A034CBB30' +
'D4E80359A104D4980259E104D418025961F8D50000596408C7');
end;
end;
SetAllChats('on', 'off', '', '', '');
FindNormalRandoms;
if (not(GetFishingGear)) then
begin
WeAreLost('No Fishing Gear');
Exit;
end;
if (GetPlayerLoc <> '') then
Location(GetPlayerLoc)
else
begin
WeAreLost('Loc detection failed');
WriteLn('Script Failed to detect your location.');
end;
end;

{------------------------------------------------------------------------------]
[ procedure PlayerLoop; ]
[ by: ZephyrsFury ]
[ Description: The player loop. ]
{------------------------------------------------------------------------------}
procedure PlayerLoop;
begin
repeat
if (Players[CurrentPlayer].Loc = 'Bank') then
begin
if (InvCount > 2) or (not(GetFishingGear)) then
begin
Location('At Bank');
PlayerLoop;
Exit;
end;
Location('Bank To Sarim');
end else

if (Players[CurrentPlayer].Loc = 'Bank To Sarim') then
begin
SetRun(True);
if (WalkMyPath(Paths[0][Random(Length(Paths[0]))], True)) then
Location('Sarim To Karamja')
else
begin
WeAreLost('Bank To Sarim Failed');
Exit;
end;
end else

if (Players[CurrentPlayer].Loc = 'Sarim To Karamja') then
begin
if (TalkToNPC('Seaman')) then
begin
T := GetSystemTime;
while (GetColor(496, 22) <> 100398) and (GetSystemTime - T < 10000) do
Wait(100);
T := GetSystemTime;
while (GetColor(496, 22) = 100938) and (GetSystemTime - T < 20000) do
Wait(1000);
if (Random(3) = 0) then ClickContinue(True, True);
if (not(CrossGangPlank)) then
begin
WeAreLost('Gang Plank Failed');
Exit;
end;
if (GetPlayerLoc = 'Karamja') then
Location('Karamja To Fish')
else
begin
WeAreLost('Ship Boarding Failed');
Exit;
end;
end else
begin
WeAreLost('No Sailor');
Exit;
end;
end else

if (Players[CurrentPlayer].Loc = 'Karamja To Fish') then
begin
SetRun(True);
if (WalkMyPath(Paths[1][Random(Length(Paths[1]))], True)) then
Location('Fish')
else
begin
WeAreLost('Karamja To Fish Failed');
Exit;
end;
end else

if (Players[CurrentPlayer].Loc = 'Fish') then
begin
SetRun(True);
while (LoggedIn) and (InvCount < 28) do
begin
if (ClickFishingSpot(Sx, Sy)) then
begin
MarkTime(TabsCounter);
TabsCountTo := 35000 + Random(5000);
while (Fishing) do
begin
if (not(LoggedIn)) then Break;
Wait(500 + Random(3000));
if (TimeFromMark(TabsCounter) >= TabsCountTo) and (TimeFromMark(AntiBanMark) >= 15000 + Random(5000)) then
begin
WriteDebug('Switching Tabs to avoid logging out...');
GameTab(Random(14) + 1);
Wait(1000 + Random(500));
GameTab(4);
TabsCountTo := 35000 + Random(5000);
MarkTime(TabsCounter);
MarkTime(AntiBanMark);
GetClientDimensions(x, y);
MMouse(Random(x), Random(y), 0, 0);
end;
AntiBanProc;
FindNormalRandoms;
if (FindFight) then
begin
WalkMyPath([Paths[1][1][5], Paths[1][1][4], Paths[1][1][3]], True);
Wait(5000 + Random(5000));
WalkMyPath([Paths[1][1][5], Paths[1][1][4], Paths[1][1][3]], False);
Inc(Fights);
Break;
end;
if (FindWhirlPool(Sx, Sy)) then
begin
WriteLn('WhirlPool Detected...');
Inc(WhirlPools);
Break;
end;
if (LostFishingGear) then
begin
WriteLn('You seem to have lost your Fishing Gear, going back to bank...');
Location('Fish To Karamja');
Exit;
end;
CheckLevel;
end;
Wait(500 + Random(3000));
end;
end;
if (InvFull) then
begin
WriteLn('Inventory Full, going back to Bank');
Location('Fish To Karamja');
end;
end else

if (Players[CurrentPlayer].Loc = 'Fish To Karamja') then
begin
SetRun(True);
if (WalkMyPath(Paths[1][Random(Length(Paths[1]))], False)) then
Location('Karamja To Sarim')
else
begin
WeAreLost('Fish To Karamja Failed');
Exit;
end;
end else

if (Players[CurrentPlayer].Loc = 'Karamja To Sarim') then
begin
if (TalkToNPC('Customs officer')) then
begin
T := GetSystemTime;
while (GetColor(496, 22) <> 100398) and (GetSystemTime - T < 5000) do
Wait(100);
T := GetSystemTime;
while (GetColor(496, 22) = 100398) and (GetSystemTime - T < 20000) do
Wait(1000);
if (Random(3) = 0) then ClickContinue(True, True);
if (not(CrossGangPlank)) then
begin
WeAreLost('Gang Plank Failed');
Exit;
end;
if (GetPlayerLoc = 'Sarim') then
Location('Sarim To Bank')
else
begin
WeAreLost('Ship Boarding Failed');
Exit;
end;
end else
begin
WeAreLost('No Customs officer');
Exit;
end;
end else

if (Players[CurrentPlayer].Loc = 'Sarim To Bank') then
begin
SetRun(True);
if (WalkMyPath(Paths[0][Random(Length(Paths[0]))], False)) then
Location('At Bank')
else
begin
WeAreLost('Sarim To Bank Failed');
Exit;
end;
end else

if (Players[CurrentPlayer].Loc = 'At Bank') then
begin
WriteDebug('Opening Bank..');
if (OpenTheBank) then
begin
if PinScreen then InPin(Players[CurrentPlayer].Pin);
WriteDebug('Depositing Fish...');
if (Players[CurrentPlayer].Strings[0] = 'Cage') then
begin
FishCount := CountItems(LobDTM, 'dtm', []);
IncEx(Players[CurrentPlayer].Integers[10], FishCount);
IncEx(TotalFishCount, FishCount);
IncEx(ReportVars[1], FishCount);
IncEx(TotalLobCount, FishCount);
end;
if (Players[CurrentPlayer].Strings[0] = 'Harpoon') then
begin
FishCount := CountItems(SwordDTM, 'dtm', []);
IncEx(Players[CurrentPlayer].Integers[10], FishCount);
IncEx(TotalFishCount, FishCount);
IncEx(ReportVars[2], FishCount);
IncEx(TotalSwordCount, FishCount);
FishCount := CountItems(TunaDTM, 'dtm', []);
IncEx(Players[CurrentPlayer].Integers[10], FishCount);
IncEx(TotalFishCount, FishCount);
IncEx(ReportVars[3], FishCount);
IncEx(TotalTunaCount, FishCount);
end;
Deposit(3, 28, True);

Inc(Players[CurrentPlayer].Integers[11]);
Inc(TotalLoads);
Inc(ReportVars[0]);
Inc(Banks);
Inc(CurLoads);

end else
begin
WeAreLost('Open Bank Failed');
Exit;
end;

if (not(GetFishingGear)) then
begin
WeAreLost('No Fishing Gear');
Exit;
end;

CloseBank;
Location('Bank');
ProgressReport;
end else

if (Players[CurrentPlayer].Loc = 'Karamja') then
begin
if (CountColor(65536, MMX1, MMY1, MMX2, MMY2) > 10000) then
if (not(CrossGangPlank)) then
begin
WeAreLost('Gang Plank Failed');
Exit;
end;
if (InvCount > 14) then Location('Karamja To Sarim')
else Location('Karamja To Fish');
end else

if (Players[CurrentPlayer].Loc = 'Sarim') then
begin
if (CountColor(65536, MMX1, MMY1, MMX2, MMY2) > 10000) then
if (not(CrossGangPlank)) then
begin
WeAreLost('Gang Plank Failed');
Exit;
end;
if (InvCount > 14) then Location('Sarim To Bank')
else Location('Sarim To Karamja');
end else

if (Pos('On Path', Players[CurrentPlayer].Loc) > 0) then
begin
case (Players[CurrentPlayer].Loc[9]) of
'0': Location('Sarim To Bank');
'1': Location('Karamja To Fish');
end;
end;

until(TimeToGo);
end;

begin
SetupScript;
repeat
SetupPlayer;
PlayerLoop;
if (AllPlayersInactive) then Break;
NextPlayer(Players[CurrentPlayer].Active);
until(False);
end.

jakeyboy29

2008-09-19 15:45:49

what have you updated?

Simtoon

2008-09-19 17:30:24

From: jakeyboy29
what have you updated?


and did you have permission to update his script

Smarter Child

2008-09-19 18:27:30

i don't think zephyr will mind as long as he didn't post it on another site~
And it doesn't even work~

Shady?

2008-09-19 18:32:49

Well, the version I found on his topic was outdated, and if i got an older version and there was a newer one, i just didn't see it :S
No, i did not ask for permission. Do you think this will get me a warn?

P1nky

2008-09-19 18:38:23

yeah i talked to zeph yesterday, he told me about this script. but dude you should ask before releasing….

Smarter Child

2008-09-19 18:50:51

too bad it don't work

tarajunky

2008-09-19 18:59:30

I have no reason to suspect that you've done anything bad to the script, but having a Dev's name attached to a script often makes it so people place additional trust in it being clean and safe. I haven't tested it myself, so I can't vouch for it. I won't remove the thread, but I encourage everyone to use their own discretion with using this script, as it is not currently "officially endorsed" by Zephyr.

I used it when Zephyr originally posted it, and it is indeed a great script.

Shady?

2008-09-19 21:01:25

From: leather cock
too bad it don't work

Why? It's working just fine for me… maybe tell me what error you're getting?

From: tarajunky
I have no reason to suspect that you've done anything bad to the script, but having a Dev's name attached to a script often makes it so people place additional trust in it being clean and safe. I haven't tested it myself, so I can't vouch for it. I won't remove the thread, but I encourage everyone to use their own discretion with using this script, as it is not currently "officially endorsed" by Zephyr.

I used it when Zephyr originally posted it, and it is indeed a great script.


Oh yea, that's true, people often think that it is safe just because it is/was developed by a Dev. But, i have not done anything bad to it, if anyone want's to check, just CONTROL+F and search for "http" maybe? and look if you can find any unsecure site, that's the only way to prove that the script is not a password stealer or something.

ZephyrsFury

2008-09-20 01:22:49

I personally don't have anything against this but it would have been nice if you had asked me first. I had a quick look through it and it doesn't seem to have been modified much. I see you've converted a lot of the reflection based versions of SRL functions back to the original colour based ones. I always thought that the reflection ones were more accurate for obvious reasons. Do they not work now or something?

The original version of my script was not meant to be for long, overnight runs. It was more of a reflection example script and I had not spent a lot of time testing, adding lots of antiban, etc. Adding some of these features (world switching, autoresponding, etc.) would be a good addition to the script. I also think that you can now use reflection to find items on the ground. A good procedure that picks up your fishing equip when that fish thing takes it would be something that is needed.

Also for future version perhaps say that it was also made by you. This would prevent any confusion with who made the script and how safe it is.

So yea, good luck. :)

Smarter Child

2008-09-20 11:32:29

it stops at fishing dock and doesn't fish doesn't move sometimes Zephyrs old one was better,,,,

Shady?

2008-09-20 12:07:49

From: leather cock
it stops at fishing dock and doesn't fish doesn't move sometimes Zephyrs old one was better,,,,


Are you sure? because it works great for me… Maybe set like 6 players with the same name, so if it logs you out, it will log you back in, and as it auto-detects your position, it will keep going.

[PHP][————————————————————————————]
[ September 20th, 2008, 02:05:30 AM ]
[————————————————————————————]
[ >>> Zephyr`s Karamja Fisher Ver 1.0 <<< ]
[————————————————————————————]
[ Total Time Running: 40 Minutes and 41 Seconds ]
[ Total Loads Done: 8 ]
[ Total Fish Caught: 208 ]
[ o Lobsters: 208 ]
[ Fishing Rate: 307 Fish/Hr ]
[ Total Fishing Exp Gained: 18720 ]
[ Experience Gain Rate: 27608 Exp/Hr ]
[ Fishing Levels Gained: 0 ]
[————————————————————————————]
[ | Nick | Act | Loc | Lvl | Loads | Fish | Time ]
[ o | itu | F | Sarim To Karamja | 79 | 8 | 208 | 29 min ]
[————————————————————————————]

[————————————————————————————]
[ September 20th, 2008, 04:53:13 AM ]
[————————————————————————————]
[ >>> Zephyr`s Karamja Fisher Ver 1.0 <<< ]
[————————————————————————————]
[ Total Time Running: 34 Minutes and 28 Seconds ]
[ Total Loads Done: 7 ]
[ Total Fish Caught: 182 ]
[ o Lobsters: 182 ]
[ Fishing Rate: 317 Fish/Hr ]
[ Total Fishing Exp Gained: 16380 ]
[ Experience Gain Rate: 28515 Exp/Hr ]
[ Fishing Levels Gained: 0 ]
[————————————————————————————]
[ | Nick | Act | Loc | Lvl | Loads | Fish | Time ]
[ o | itu | T | Bank | 79 | 7 | 182 | 34 min ]
[————————————————————————————]


[ Total Time Running: 1 Hours, 8 Minutes and 37 Seconds ]
[ Total Loads Done: 12 ]
[ Total Fish Caught: 312 ]
[ o Lobsters: 312 ]
[ Fishing Rate: 273 Fish/Hr ]
[ Total Fishing Exp Gained: 28080 ]
[ Experience Gain Rate: 24554 Exp/Hr ]
[ Fishing Levels Gained: 0 ]
[————————————————————————————]
[ | Nick | Act | Loc | Lvl | Loads | Fish | Time ]
[ o | itu | F | Lost - No Customs officer | 79 | 12 | 312 | 51 min ]
[————————————————————————————]


[————————————————————————————]
[ September 20th, 2008, 12:12:37 PM ]
[————————————————————————————]
[ >>> Zephyr`s Karamja Fisher Ver 1.0 <<< ]
[————————————————————————————]
[ Total Time Running: 37 Minutes and 19 Seconds ]
[ Total Loads Done: 5 ]
[ Total Fish Caught: 130 ]
[ o Lobsters: 130 ]
[ Fishing Rate: 209 Fish/Hr ]
[ Total Fishing Exp Gained: 11700 ]
[ Experience Gain Rate: 18812 Exp/Hr ]
[ Fishing Levels Gained: 0 ]
[————————————————————————————]
[ | Nick | Act | Loc | Lvl | Loads | Fish | Time ]
[ o | Already| T | Bank | 60 | 5 | 130 | 36 min ]
[/PHP]

Vcanny

2008-09-28 23:54:57

shady, nice job on reviving one of the outdated lobsters fishing scripts. Its like the only script in juniors fishing scripts that can fish lobsters. I fished around 3k in two days. btw i turned it off every night so that i wont get banned. In the future try to add breaks like Narcles, and sleeps like narcles. Ive once used AK smelter to smelt around 10k steel bars LOL. did not get banned

Biskit

2008-10-01 07:38:25

I cant get this to work..

it will log me in and then do nothing at all

Shady?

2008-10-13 21:32:47

From: Vcanny
shady, nice job on reviving one of the outdated lobsters fishing scripts. Its like the only script in juniors fishing scripts that can fish lobsters. I fished around 3k in two days. btw i turned it off every night so that i wont get banned. In the future try to add breaks like Narcles, and sleeps like narcles. Ive once used AK smelter to smelt around 10k steel bars LOL. did not get banned


Yes, Sleep n Break is coming on the next version, it's just that i didnt get the feedback i was expecting, so i decided to do other things before updating this one…

@ Biskit: Do you have the latest reflection?

nazcan

2008-10-22 12:21:52

[Runtime Error] : Math error in line 430 in script /// Any idea?

theo

2008-10-23 11:20:14

hmm…stoppes working after setting personal message to off…showing that my fishing lvl is like 3634…and then does absolutely nothing…i could click in smart with my own mouse like if it was a browser o.o

purepk3rstr

2008-10-27 19:44:21

What SRL Rev do i use?

nazcan

2008-11-02 06:26:12

Same problem…
[Runtime Error] : Math error in line 430 in script

nazcan

2008-11-04 13:04:10

Problem solved. Now only problem is that when i am supposed to step off from the ship, script doesn't do it.

lnknprkn

2008-11-05 21:55:11

Location: Bank
Location: Bank To Sarim
Walking to Path Index: 1 (3082, 3251).
Walking to Path Index: 2 (3072, 3260).
Walking to Path Index: 2 (3072, 3260).
Walking to Path Index: 3 (3060, 3264).
Walking to Path Index: 3 (3060, 3264).
Walking to Path Index: 4 (3047, 3263).
Walking to Path Index: 5 (3041, 3252).
Walking to Path Index: 6 (3032, 3243).
Walking to Path Index: 7 (3028, 3230).
Walking to Path Index: 7 (3028, 3230).
Walking to Path Index: 8 (3029, 3217).
Location: Sarim To Karamja
Location: Lost - No Sailor

Tom_Gower

2008-11-08 23:45:29

Inkn the getting of the boat bit, doesnt work yet… It fails to use the bridge, but that is the only problem. Its probably a simple fix, maybe we should make a pole for him to update it? it's a great script that is in need by many.

Shady?

2008-11-11 13:21:02

Hm, i think that most of the errors you're getting are because of Reflection, you need to get the latest version of it everytime runescape is updated. And for the gangplank, its working for me..

Tom_Gower

2008-11-16 02:24:27

It will only work if the camera angle is right, and i have the latest reflection ect.

Shady?

2008-11-17 19:19:47

From: Tom_Gower
It will only work if the camera angle is right, and i have the latest reflection ect.


Well that's weird, because the script is fully reflection based, so the camera angle wouldn't affect anything…

Bonfield

2008-11-18 01:51:55

it doesnt find the gangplank when exiting the boat at karajama, i really cant see why either strange

sundeep125

2008-11-18 11:20:21

i always get an error… why? cud some1 help me please

Shady?

2008-11-18 17:42:56

From: sundeep125
i always get an error… why? cud some1 help me please


Post the error, maybe that way we can help you.

Shady?

2008-11-18 21:11:30

[————————————————————————————]
[ November 18th, 2008, 11:05:51 PM ]
[————————————————————————————]
[ >>> Shady?'s Karamja Fisher Ver 1.0 <<< ]
[————————————————————————————]
[ Total Time Running: 4 Hours, 5 Minutes and 24 Seconds ]
[ Total Loads Done: 25 ]
[ Total Fish Caught: 577 ]
[ o Lobsters: 577 ]
[ Fishing Rate: 141 Fish/Hr ]
[ Total Fishing Exp Gained: 51930 ]
[ Experience Gain Rate: 12697 Exp/Hr ]
[ Fishing Levels Gained: 0 ]
[————————————————————————————]
[ | Nick | Act | Loc | Lvl | Loads | Fish | Time ]
[ o | lims | T | Lost - Gang Plank Failed | 84 | 2 | 48 | 11 min ]
[ o | lims | T | Lost - Open Bank Failed | 84 | 3 | 69 | 13 min ]
[ o | lims | T | Lost - Open Bank Failed | 84 | 2 | 46 | 13 min ]
[ o | lims | T | Lost - Open Bank Failed | 84 | 3 | 69 | 24 min ]
[ o | lims | T | Lost - Open Bank Failed | 84 | 1 | 23 | 1 min ]
[ o | lims | T | Lost - No Customs officer | 84 | 3 | 69 | 17 min ]
[ o | lims | T | Lost - No Customs officer | 84 | 5 | 115 | 38 min ]
[ o | lims | T | Sarim To Bank | 84 | 0 | 0 | 1 min ]
[ o | lims | T | Lost - No Sailor | 84 | 4 | 92 | 34 min ]
[ o | lims | T | Lost - No Sailor | 84 | 2 | 46 | 19 min ]
[————————————————————————————]

Bonfield

2008-11-19 00:17:44

any idea on the gangplank? is the version u are using the same as the one posted?

sundeep125

2008-11-19 11:26:52

the error i get is :

Failed when compiling
Line 78: [Error] (17805:20): Unknown identifier 'SmartGetFieldLongH' in script C:\Documents and Settings\Amit\My Documents\Downloads\SCAR 3.15\includes\SRL\SRL\Reflection\Objects.Scar

wat should i do?

i put some codes in from the smart tut and now i get this error

Failed when compiling
Line 88: [Error] (16356:28): Invalid number of parameters in script C:\Documents and Settings\Amit\My Documents\Downloads\SCAR 3.15\includes\SRL/SRL.scar

wat should i do?!!! lol thanks

Shady?

2008-11-19 18:51:07

From: Bonfield
any idea on the gangplank? is the version u are using the same as the one posted?



A temporary fix for this is to set about 10 players with the same name, so everytime it fails on something, it will log back in and go on. That's the method i've been using, and it can run 10hs+ with only 1 player. (Actually, it will run almost forever as long as you dont get an unsolveable random).
Also, almost on the last line, replace
NextPlayer(Players[CurrentPlayer].Active);
for
NextPlayer(True);
I know this will create an infinite loop, but trust me it works good, i get 10+hs proggys singleplayer everyday, and its allways there, fishing!

jacoby6000

2008-11-20 08:52:35

mine always does 1load then goes to next character (i set it to 6 loads) always logging out at the gang-plank… maybe its a script issue? i dont see why it would be an error in reflection or smart installation if it happens to this many people

Shady?

2008-11-20 10:42:32

From: jacoby6000
mine always does 1load then goes to next character (i set it to 6 loads) always logging out at the gang-plank… maybe its a script issue? i dont see why it would be an error in reflection or smart installation if it happens to this many people


Try what i said in the above post.

sundeep125

2008-11-20 16:13:56

mine always does 1 load then logs out and does nothing what should i do?

but now when i run the script and smart loads before it logs in i always get this error:

SRL Compiled in 16281 msec
[Runtime Error] : Out Of Range in line 322 in script C:\Documents and Settings\Amit\My Documents\Downloads\SCAR 3.15\includes\SRL/SRL/Core/Login.scar

on this line:

if (not(Players[CurrentPlayer].Active)) then

help!


SORRY FORGET ABOUT THE ERROR I FIXED IT!

i jus need to know why it only does 1 load and then logs out and does nothing, cud some1 tell me itll b a great help :P

gimillii1592

2008-11-23 14:27:40

Cool…trying right now and I'll post a proggy
:]

Can you make this bank in the volcano?

Shady?

2008-11-24 10:24:18

From: gimillii1592
Cool…trying right now and I'll post a proggy
:]

Can you make this bank in the volcano?


I'm sorry but i'm afraid not, i don't have any members account.

gimillii1592

2008-11-30 14:11:42

From: Shady?
I'm sorry but i'm afraid not, i don't have any members account.


oh..that sucks :[

lnknprkn

2008-12-03 13:51:18

for some reason when i start the script, it'll open up all normally. then the red dot starts from the left top and slowly moves to the right bottom, instead of logging me in..

Shady?

2008-12-07 13:16:41

From: lnknprkn
for some reason when i start the script, it'll open up all normally. then the red dot starts from the left top and slowly moves to the right bottom, instead of logging me in..


check your reflection version.

JaMe$

2008-12-27 10:21:50

Failed when compiling
Line 425: [Hint] (19553:1): Variable 'X' never used in script
Line 425: [Hint] (19553:1): Variable 'Y' never used in script
Line 489: [Hint] (19617:1): Variable 'PX' never used in script
Line 489: [Hint] (19617:1): Variable 'PY' never used in script
Line 704: [Hint] (19832:1): Variable 'TX' never used in script
Line 704: [Hint] (19832:1): Variable 'TY' never used in script
Line 773: [Hint] (19901:1): Variable 'TX' never used in script
Line 773: [Hint] (19901:1): Variable 'TY' never used in script
Line 819: [Hint] (19947:1): Variable 'PY' never used in script
Line 955: [Error] (20083:64): Invalid number of parameters in script
Failed when compiling
Line 425: [Hint] (19553:1): Variable 'X' never used in script
Line 425: [Hint] (19553:1): Variable 'Y' never used in script
Line 489: [Hint] (19617:1): Variable 'PX' never used in script
Line 489: [Hint] (19617:1): Variable 'PY' never used in script
Line 704: [Hint] (19832:1): Variable 'TX' never used in script
Line 704: [Hint] (19832:1): Variable 'TY' never used in script
Line 773: [Hint] (19901:1): Variable 'TX' never used in script
Line 773: [Hint] (19901:1): Variable 'TY' never used in script
Line 819: [Hint] (19947:1): Variable 'PY' never used in script
Line 955: [Error] (20083:64): Invalid number of parameters in script

NCDS

2008-12-27 10:28:50

clearly this script is no longer working.

j3nkinz

2008-12-28 19:36:10

heres a proggy,
[---------Advanced-Proggie--------]
[ Lobsters Caught = 1066 ]
[ Experience Per Hour = 13680 ]
[ Fish Caught Per Hour = 152 ]
[ Total Exp Gained = 95940 ]
[ Fishing Levels Gained = 2 ]
[---------------------------------]
[----------Simple-Proggie---------]
[---------------------------------]
[ Level | Loads | Fish | Time ]
[ 65 | 42 | 1066 | 402 min ]
ran for 6hours and 50 minutes

sorry for changing the progress report, was bored =(
umm and it ran for so long because i did alot of editing . and it is almost flawlessly working for me . however i cant post until i can get to chat with zephyr.

NCDS

2008-12-28 21:27:39

From: j3nkinz
heres a proggy,
[---------Advanced-Proggie--------]
[ Lobsters Caught = 1066 ]
[ Experience Per Hour = 13680 ]
[ Fish Caught Per Hour = 152 ]
[ Total Exp Gained = 95940 ]
[ Fishing Levels Gained = 2 ]
[---------------------------------]
[----------Simple-Proggie---------]
[---------------------------------]
[ Level | Loads | Fish | Time ]
[ 65 | 42 | 1066 | 402 min ]
ran for 6hours and 50 minutes

sorry for changing the progress report, was bored =(
umm and it ran for so long because i did alot of editing . and it is almost flawlessly working for me . however i cant post until i can get to chat with zephyr.



If all this is true, and you talk to Zeph and he says go ahead and post, then you will be a hero at SRL for a brief moment lol.

P1nky

2009-01-04 00:59:13

na zeph left scripting for awhile talked to him not too long ago =(
though never know he may be back like always woooo!

Shady?

2009-01-04 03:25:34

From: ~~Joker~~
na zeph left scripting for awhile talked to him not too long ago =(
though never know he may be back like always woooo!


Hmm, last month he was developing the 2nd version of this script, wich he has already finished, i got a copy of it. Maybe he posted it on the Srl Members thread?.

Tell me what's wrong with the script, because it's working okay for me.

kingstun

2009-01-12 20:24:43

The smart that is implemented onto the script is old.
IT works like a charm :P!

Shady?

2009-01-14 00:44:19

From: kingstun
The smart that is implemented onto the script is old.
IT works like a charm :P!


Thanks, it has now been fixed.

freebullets

2009-02-28 06:45:15

Can't detect where I am, marks me as lost. Also doesn't read Fishing level right.

kingstun

2009-02-28 20:07:16

reflection is down.
wait till method updates it.

Punkgi

2009-03-25 19:50:24

testing. if i dont forget to report.

NightBlade

2009-03-29 01:11:59

Nvm

kyleisntwild

2009-04-13 20:25:25

Anyone tested this recently?

Punkgi

2009-04-14 16:40:55

i dont think it worked correctly.

Huckleberry

2009-04-16 12:13:42

From: Punkgi
i dont think it worked correctly.


Yes, it not working anymore due to updates. I edited this adn I will post it. But I need to ask permission first to Zeph, before posting.