i get the same problem Thanatos
i get the same problem Thanatos
On my script chatlog i receive this error
-------- Failed to pair to SMART[14624]
------ smartPairToExistingClient(): result = false
then on the console I receive this
Error: client.init:1208 sun.reflect.NativeMethodAccessorImpl.invoke0 sun.reflect.NativeMethodAccessorImpl.invoke sun.reflect.DelegatingMethodAccessorImpl.invoke java.lang.reflect.Method.invoke Rs2Applet.a:246 Rs2Applet.init:501 smart.Client.initFrame:613 smart.Client.<init>:143 smart.Main.main950 | java.lang.RuntimeException |
Great, but atm it spend a LOT of time sitting around doing nothing, often even timing out entirely.
I am running it in openGL
I'm getting an error where it's not locating my player on screen.
WARNING: fishGuild.getPlayerPos(): Didn't find enough matches accurately calc your postion
-- fishGuild.getPlayerPos(): result = {X = -1, Y = -1}, took 32 ms
It does this continually. It's been a while since I've used Simba, but I placed the image in the SPS folder, have my settings correct, and have the camera zoomed completely out. If someone could enlighten me on what I did wrong I'd appreciate it thanks
I have one question about this script; Does it bank the fishes?
Alright, so i started the script and it just stood there for a minute and did nothing then logged me out, any suggestions?
I don't think this script works anymore. The SPS image needs updating for the new symbols.
E: I made this one that's working well. Don't mind the HP thing, Idk how to get rid of it.
Nice script! Hopefully it won't take too long to get 99.
Last edited by Coh3n; 04-03-2014 at 08:38 PM.
SRL's F.A.Q. (Error fixes) | How to Convert SRL-5 Scripts to SRL-6 | Draynor Chop N' Bank (RS3)| AIO Superheater (RS3)
T - E - A - MTogether Everyone Achieves More
Just replaced the SPS image in the OP with the one I posted.
E: @footballjds; I don't know if you're still maintaining this, but I've noticed a couple times that the script repeatedly moves the mouse to (0, 0) then moves away, then moves back to (0, 0). It eventually corrects itself, it just seems odd. I also made a small change to make it destroy spin tickets instead of claiming them. If a player has maxed out their tickets you can no longer claim new ones, and the script just keeps clicking the ticket in the inventory.
The drawing to SMART in DirectX doesn't really work for me, so I had the script print the progress report as well. I've had a few like this:
Will take a while to get 99, but the script works really well. Thanks!Progress Report:=========================================================== Run Time: 12h 26m 01s EXP/Hour: 35128 Total EXP: 436780 Swordfish: 2355 Tuna: 2516 ===========================================================
SRL's F.A.Q. (Error fixes) | How to Convert SRL-5 Scripts to SRL-6 | Draynor Chop N' Bank (RS3)| AIO Superheater (RS3)
T - E - A - MTogether Everyone Achieves More
SRL's F.A.Q. (Error fixes) | How to Convert SRL-5 Scripts to SRL-6 | Draynor Chop N' Bank (RS3)| AIO Superheater (RS3)
T - E - A - MTogether Everyone Achieves More
How did you fix it on your side the spamming
Simba Code:-- fishGuild.getPlayerPos(): result = {X = 148, Y = 106}, took 31 ms
-- fishGuild.getPlayerPos(): result = {X = 148, Y = 106}, took 15 ms
-- fishGuild.getPlayerPos(): result = {X = 148, Y = 106}, took 16 ms
-- fishGuild.getPlayerPos(): result = {X = 148, Y = 106}, took 31 ms
-- fishGuild.getPlayerPos(): result = {X = 148, Y = 106}, took 16 ms
-- fishGuild.getPlayerPos(): result = {X = 148, Y = 106}, took 16 ms
-- fishGuild.getPlayerPos(): result = {X = 148, Y = 106}, took 15 ms
Even with replacing the map with yours it still spams that and every few seconds its constantly right-clicking on the fishing spot to fish. Also Deposit Box doesn't work as in after it clicks the deposit box in the Window that popups it doesn't do anything and it just goes back to fishing. And if you run it with that option disabled it still forces going to the deposit box but instead it right-clicks it and doesn't select it. For me it does this on DirectX.
Can you maybe post your version sharkFisher.simba, since I also want the progress report on the Simba log
The debug has nothing to do with the map. That being spammed is just the SPS function being called (successfully, according to your debug). You have to disable SRL debug by putting this line before SetupSRL:
Make sure you have the most up to date version of SRL as I fixed the deposit box issue when I started using this script.Simba Code:disableSRLDebug := true;
Here's my version; although there really isn't anything that's changed, other than the progress report.
Simba Code:program sharkGuild;
{$DEFINE SMART}
{$I SRL-6/SRL.simba}
{$I sps/lib/sps-rs3.simba}
{$I _sum_include.simba}
type
colorInfo = record
cts: TColorSettings;
color, tol, min: integer;
area: TBox;
end;
var
x, y: integer;
paths: T2DPointArray;
fishGuild: TSPSArea;
fishies: colorInfo;
CurrentSpot: TBox;
our_xy_loc: TPoint;
fishing_spots: TPointArray;
fish_spot2D: T2DPointArray;
need_pouch: boolean;
progyBmp, sharks_caught, swordfish_caught, tuna_caught: integer;
_sharks_caught, _swordfish_caught, _tuna_caught: integer;
fishing_fam: _familiar;
{
[SETUP BELOW]
}
const
USE_DirectX = true;
USE_Deposit_Box = true;//will use deposit box if set to true[deposits ALL]
_GLOBAL_DEBUG = false;
procedure declarePlayers;
begin
setLength(players, 1);
with players[0] do
begin
strings[0] := 'north';//platform [north or south]
strings[1] := 'swordfish';//fish[tuna, swordfish, sharks, random]
integers[0] := 25000;//min wait time for catching a new fish
strings[2] := '';//Familiar to summon(leave blank unless using a familiar)
{'granite crab'|'ibis'|'granite lobster'}
integers[1] := 1;//Familiar pouch slot in bank(have plenty!)
skillLevel[23] := 1;//Summoning level
loginName := '';
bankPin := '';
password := '';
isActive := true;
isMember := true;
world := -1;
end;
currentPlayer := 0;
end;
{
[END SETUP]
}
function invrtClr(clr: integer): integer;
var
r, g, b: integer;
begin
colorToRGB(clr, r, g, b);
result := RGBToColor(255-r, 255-g, 255-b);
end;
procedure initBmp;
begin
progyBmp := BitmapFromString(224, 79, 'meJztvdePXGeeJUj0++wb31RQD' +
'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' +
'/OvlNac3V7FXNaZYrfOHLvlFZZDTN4yzULn3UYq+iMRS+EaPO482l' +
'hu0QfMRmpTkZT3VF4c8Pnh2OrCJP88TT+iIUQX7/ft+quZ/iNkx55' +
'RwsKRYCVCcT/x9pisp+GT7v/NyejFvraujj5u4mdgZHt2fRWKbmBF' +
'J79rwJT+AK8GCCKGCyowBIdB1jXuNkH2lVUAlV+sYdVtoBtCnUAe+' +
'4GBiHE7w/rEFosf7Es23JtixXNHdv39rpZNgsOLTL8L//lv8KEsma' +
'FxtN0bIPVY3vE+/F5MfqZgfOSodQgmvjT33g61Vhqrt4bpuNGWYMF' +
'twhTRTiFzZmUodTMI0rWMqEFl0RPfZif/nio2N5rd8zuoUUFsqvH3' +
'7ZjfL3Yu1Wy+LPDXrlwdHLh6Pjzi50G0ReXun9/rP9iJPv42Pjzha' +
'69uXRXv/21vKXPjbbBOmKt+OGP0sqP1loH1E8ss4S4MopiplLyI8B' +
'nr+Xs5l5znv3MvltabqaxI21ZO97vPfhWr8uPsmiYHnwnbTBGm5V/' +
'Tabv8FulWtsASm3FWLGty+6/2f+7s8mDfz8idJlN2xkY3pqOHW//q' +
'7m5hRBmP8vjvqPvZHJjadnPlTGzugFz5bagLPLktbnG09G2N9fOhm' +
'/8xCedPwQmPHCyucmyXmVfZQl1wqkYEWt2I7yeD61PRjamvPiwwLZ' +
'RDmVec0+VQqzCzF1Jyn602DEyktNhPxJmLOM22BiELN22uNGybKXY' +
'7E3A4brzsjq3H5/nw59cCH9iKF2I/OlvPx1OMYVKbKMYtY9mCHRxr' +
'8XkxbjdlvUpXoMtE3a+LJ5cZ70aGTTt59ShUsnXe+xnzyvz3jiDUk' +
'v3EicDQNr8EeRHKp09W+j6/dG+i7Hs4rGJn672Pb/Y1T1o7yn87u3' +
'Spm+owfLs4Q8ZYb4LfLKYiaaqio12yCTCup7tU5u1ic9rf8yz+2+R' +
'qs9ykC9jrZ+9n/rs/d79+dGXp4ezf0CGwgqkT3m0sjP1po/R7VoKv' +
'zPTuzub2ptPnQp3CKL3BkZOvj3cyZT/mOU+KE/lm7ULw+fXf+zPjv' +
'sKZzM6l+Hz0Ptaa/Zx+lbO9Nr1o1aW9R881KXfKh4qVVk3O/yb/OG' +
'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' +
'As4a92s=');
end;
procedure initColors;
begin
with fishies do
begin
cts.CTS := 2;
cts.modifier.hue := 0.16;
cts.modifier.saturation := 0.46;
color := 13352368;
area := mainscreen.getBounds;
tol := 11;
min := 10;
end;
end;
procedure initPaths;
begin
fishGuild.setup('fish_guild', '', 6, 500, 0.5);
setLength(paths, 3);
//to bank
paths[0] := [Point(120, 131), Point(110, 128), Point(101, 117), Point(96, 104), Point(85, 99), Point(73, 100)];
//to the north dock
paths[1] := [Point(109, 128), Point(99, 113), Point(99, 105), Point(119, 106), Point(135, 104), Point(150, 107)];
//to the south dock
paths[2] := [Point(99, 108), Point(114, 138), Point(123, 148), Point(137, 163), Point(149, 158), Point(146, 142), Point(145, 121)];
end;
procedure initFamiliar;
begin
if players[currentPlayer].strings[2] <> '' then
begin
fishing_fam.name := lowercase(players[currentPlayer].strings[2]);
case fishing_fam.name of
'granite crab': begin fishing_fam.points_needed := 2; fishing_fam.timer_length := 1080000; end;
'ibis': begin fishing_fam.points_needed := 6; fishing_fam.timer_length := 2280000; end;
'granite lobster': begin fishing_fam.points_needed := 8; fishing_fam.timer_length := 2820000; end;
end;
end;
end;
function walk(dest: string): boolean;
var
path: TPointArray;
t: integer;
p: TPoint;
begin
case dest of
'bank': path := paths[0];
'south': path := paths[2];
else path := paths[1];
end;
if SPS_PosToMM(path[high(path)], fishGuild.getPlayerPos, p) then
if (distance(p, minimap.getCenterPoint()) < 5) then exit(true);
t := getSystemTime + randomRange(4000, 5000);
fishGuild.walkPath(path);
minimap.waitPlayerMoving();
result := fishGuild.walkPath(path);
end;
function searchBounds: TBox;
var
sDist, nDist: integer;
sps_Pos, mmX, msX: TPoint;
msB: TBox;
begin
sps_Pos := fishGuild.getPlayerPos;
//smartImage.clearArea(mainscreen.getBounds);
sDist := abs(sps_Pos.y - paths[2][high(paths[2])].y);
nDist := abs(sps_Pos.y - paths[1][high(paths[1])].y);
msB := mainscreen.getBounds;
result := msB;
if nDist < sDist then
begin
if SPS_PosToMM(paths[1][high(paths[1])], sps_Pos, mmX) then
begin
msX := minimap.pointToMainscreen(mmX);
if msB.isPointInside(msX) then
result := intToBox(msB.x1, msB.y1, msX.x + 65, msX.y + 65);
end;
end else
begin
if SPS_PosToMM(paths[2][high(paths[2])], sps_Pos, mmx) then
begin
msX := minimap.pointToMainscreen(mmX);
if msB.isPointInside(msX) then
result := intToBox(msX.x - 100, msX.y - 65, msB.x2, msB.y2);
end;
end;
result.setLimit(mainscreen.getBounds);
smartimage.drawBox(result, false, 656583);
end;
procedure addFishSpots(TPA: TPointArray);
var
tempATPA: T2DPointArray;
i: integer;
begin
tempATPA := fish_spot2D.copy;
for i := 1 to 14 do
fish_spot2D[i] := tempATPA[i-1];
fish_spot2D[0] := TPA;
end;
procedure updateFishSpots(tpa: TPointArray);
begin
if our_xy_loc.equals(fishGuild.getPlayerPos) then
begin
addFishSpots(tpa);
fishing_spots := fish_spot2D.merge;
fishing_spots.clearEquals;
end else
begin
our_xy_loc := fishGuild.getPlayerPos;
setLength(fish_spot2D, 0);
setLength(fish_spot2D, 15);
fishing_spots := tpa.copy;
end;
end;
procedure findFishSpots(searchArea: TBox);
var
tempTPA: TPointArray;
begin
findColorsTolerance(tempTPA, fishies.color, searchArea, fishies.tol, fishies.cts);
updateFishSpots(tempTPA);
end;
function fishSpots(minWait: integer; searchArea: TBox; out fish2D: T2DPointArray): boolean;
var
fishPoints: TPointArray;
findTime, i, h: integer;
testintarray: TIntegerArray;
begin
fish2D := [];
if chooseOption.isOpen then chooseOption.close;
findTime := getSystemTime + randomRange(minWait, round(minWait*1.3));
repeat
findFishSpots(searchArea);
if getSystemTime > findTime then exit;
wait(randomRange(100, 200));
until (length(fishing_spots) > 200);
fishPoints := fishing_spots.copy;
TPAPartitionWrap(fishPoints, 15, 15, fish2d);
result := true;
end;
function TPointArray.centerPoint(): TPoint;
var
tmpArray: TPointArray;
begin
if length(self) < 1 then exit;
tmpArray := self;
tmpArray.sortFromPoint(self.getMiddle);
result := tmpArray[0];
end;
procedure setSpot(spot: TPoint);
var
p: TPointArray;
begin
//Points to check for fishing
//Clockwise starting at the top
p := [[287, 172], [318, 202], [287, 230], [260, 202]];
p.sortFromPoint(spot);
CurrentSpot := [p[0].x-8, p[0].y-8, p[0].x+8, p[0].y+8];
end;
function fishChoice: boolean;
var
tOptions: __TOptionArray;
options: TStringArray;
i: integer;
begin
if chooseOption.optionsExist(['Harpoon']) then
begin
tOptions := chooseOption.__getOptions;
if not(length(tOptions) > 0)then exit;
for i := 0 to high(tOptions) do insert(tOptions[i].str, options);
options.invert;
case lowercase(players[currentPlayer].strings[1]) of
'tuna', 'swordfish': begin
for i := 0 to high(options) do
begin
if (pos('Harpoon', options[i]) > 0) then
if i > 0 then if pos('Cage', options[i-1]) then
begin
mouseBox(tOptions[i].bounds, Mouse_Left);
exit(true);
end;
end;
end;
'sharks': begin
for i := 0 to high(options) do
begin
if (pos('Harpoon', options[i]) > 0) then
if i > 0 then if pos('Net', options[i-1]) then
begin
mouseBox(tOptions[i].bounds, Mouse_Left);
exit(true);
end;
end;
end;
'random': result := chooseOption.select(['Harpoon']);
end;
end;
wait(randomRange(1, 100)); chooseOption.close;
end;
function goFishing: boolean;
var
fish: TPointArray;
spots: T2DPointArray;
i, h: integer;
sps_Pos: TPoint;
begin
if tabBackpack.isFull then exit;
CurrentSpot := [0, 0];
if fishSpots(1000, searchBounds, spots) then
begin
h := high(spots);
for i := 0 to h do
insert(spots[i].centerPoint, fish);
fish.sortFromPoint(mainscreen.playerPoint);
for i := 0 to h do
begin
mouse(fish[i].randRange(-3, 3), Mouse_Right);
if fishChoice then
begin
sps_Pos := fishGuild.getPlayerPos;
if minimap.isFlagPresent(randomRange(1500, 3000)) then
begin
wait(randomRange(500, 800));
minimap.waitPlayerMoving();
wait(randomRange(500, 800));
if sps_Pos.equals(fishGuild.getPlayerPos) then setSpot(fish[i]);
exit(true);
end;
end;
wait(randomRange(1, 200));
end;
end;
end;
function shift50: boolean;
var
shift: integer;
begin
smartImage.drawBox(mainscreen.playerbox, false, 7058322);
shift := getPixelShift(mainscreen.playerbox, 50);
result := (shift > 400);
end;
function spotGone: boolean;
var
tmpRay: TPointArray;
begin
if tabBackpack.isFull then exit(true);
result := currentSpot.equals([0, 0]);
if not result then
begin
tmpRay := fishing_spots.copy;
tmpRay.filterPointsBox(CurrentSpot);
result := length(tmpRay) < 1;
end;
end;
procedure waitWhileFishing;
var
threshold, invCount, shiftTime, spotTime: integer;
wtime: integer;
spinPoint: TPoint;
sumInfo: string;
begin
smartImage.clearArea(mainscreen.getBounds);
smartImage.drawBox(CurrentSpot, false, 656583);
wtime := players[currentPlayer].integers[0];
threshold := getSystemTime + randomRange(wtime, round(wtime*1.3));
shiftTime := getSystemTime + gaussRangeInt(4200, 6000);
spotTime := getSystemTime + randomRange(2000, 3000);
invCount := tabBackpack.count;
while (threshold > getSystemTime) and (shiftTime > getSystemTime) and (spotTime > getSystemTime) do
begin
need_pouch := (not fishing_fam.isSummoned(true, false) and (players[currentPlayer].strings[2] <> ''));
wait(gaussRandom(300));
if findTicket(spinPoint) then
destroyTicket(tabBackpack.pointToSlot(spinPoint));
if (fishing_fam.name <> '') then sumInfo := ' - ' + fishing_fam.name + ' timer: '+msToTime(fishing_fam.getRemaining, TIME_SHORT);
status('Threshold: '+toStr(threshold-getSystemTime)+' - Shift: '+toStr(shiftTime-getSystemTime)+' - Location: '+players[currentPlayer].location+sumInfo);
findFishSpots(searchBounds);
wait(gaussRandom(300));
if not spotGone then spotTime := getSystemTime + randomRange(2000, 3000);;
if shift50 then shiftTime := getSystemTime + gaussRangeInt(4200, 6000);
if invCount <> tabBackpack.count then
begin
invCount := tabBackpack.count;
threshold := getSystemTime + randomRange(wtime, round(wtime*1.3));
end;
end;
end;
function findObelisk: T2DPointArray;
var
threshold: integer;
tempTPA: TPointArray;
begin
threshold := getSystemTime + randomRange(1500, 2000);
while threshold > getSystemTime do
begin
wait(100);
if findColorsTolerance(tempTPA, 10789748, mainscreen.getBounds,
14, colorSetting(2, 0.04, 0.20)) then insert(tempTPA, result);
end;
setLength(tempTPA, 0);
if length(result) > 0 then
begin
tempTPA := result.merge;
tempTPA.clearEquals;
TPAPartitionWrap(tempTPA, 25, 25, result);
result.sortFromMidPoint(mainscreen.playerPoint);
end;
end;
function renew_points: boolean;
var
t2dObelisk: T2DPointArray;
i, h: integer;
begin
if not fishGuild.walkToPos(point(106, 97), fishGuild.getPlayerPos) then exit;
minimap.waitPlayerMoving();
t2dObelisk := findObelisk;
if length(t2dObelisk) < 1 then exit;
h := high(t2dObelisk);
for i := 0 to h do
begin
mouse(t2dObelisk[i].centerPoint, Mouse_Right, Mouse_human);
if chooseOption.select(['Renew-', '-points', 'points Small'], randomRange(1000, 3000)) then
begin
minimap.waitPlayerMoving();
wait(randomRange(100, 500));
exit(true);
end else chooseOption.close;
end;
end;
function getDepositBox: TPoint;
var
depositPoints: TPointArray;
depositBoxes: T2DPointArray;
i, h: integer;
begin
result := [-1, -1];
if findColorsTolerance(depositPoints, 609645, mainscreen.getBounds, 5, colorSetting(2, 0.06, 0.46)) then
begin
TPAPartitionWrap(depositPoints, 28, 28, depositBoxes);
depositBoxes.sortBySize();
if (length(depositBoxes[0]) > 100) then
result := depositBoxes[0].getMiddle else exit();
if _GLOBAL_DEBUG then smartImage.drawCross(result, 5, invrtClr(getColor(result)));
end;
end;
function findBankers: TPointArray;
var
grayPoints: TPointArray;
bankers: T2DPointArray;
i, h: integer;
begin
if findColorsTolerance(grayPoints, 8027271, mainscreen.getBounds, 7, colorSetting(2, 0.59, 0.21)) then
begin
TPAPartitionWrap(grayPoints, 30, 30, bankers);
h := high(bankers);
for i := 0 to h do
if length(bankers[i]) > 25 then insert(bankers[i].centerPoint, result);
result.sortFromPoint(mainscreen.playerPoint);
end;
end;
function HandleBanking: boolean;
var
bankPoints: TPointArray;
i: integer;
threshold, timer: integer;
begin
threshold := getSystemTime + randomRange(25000, 45000);
if walk('bank') then
begin
repeat
bankPoints := findBankers;
if length(bankPoints) > 0 then
begin
for i := 0 to high(bankPoints) do
begin
mouse(bankPoints[i], Mouse_Right);
if chooseOption.select(['Bank Banker', 'ank Banker', 'Bank Bank'], randomRange(2500,3500)) then
begin
timer := getSystemTime + randomRange(3000, 5000);
while (timer > getSystemTime) do
begin
if bankscreen.isOpen or pinscreen.isOpen then break;
wait(randomRange(100,200));
end;
end;
if bankscreen.isOpen or pinscreen.isOpen then break;
end;
end;
until (bankscreen.isOpen) or (pinscreen.isOpen) or (getSystemTime > threshold);
end;
if pinscreen.isOpen then pinscreen.enter(players[currentPlayer].bankPin);
if not bankscreen.isOpen then exit;
if bankscreen.quickDeposit(QUICK_DEPOSIT_INVENTORY) then
begin
if need_pouch then bankscreen.withdraw(players[currentPlayer].integers[1], 1, ['']);
while threshold > getSystemTime do
begin
wait(randomRange(250, 400));
if bankscreen.close then
begin
tabBackpack.waitWhileLocked;
exit(true);
end;
end;
end;
end;
function handleDepositing: boolean;
var
depositBoxPoint: TPoint;
boxOpen: boolean;
i: integer;
begin
if not walk('bank') then
begin
print('Failed to walk to bank... [00231]');
exit;
end;
for i := 0 to 3 do
begin
depositBoxPoint := getDepositBox;
if depositBoxPoint.x < 1 then exit;
mouse(depositBoxPoint, MOUSE_MOVE, MOUSE_HUMAN);
wait(gaussRandom(25));
if (pos('Deposit Bank', getMouseOverText) > 0) then
begin
fastClick(MOUSE_LEFT);
boxOpen := depositBox.isOpen(randomRange(1000, 3000));
if boxOpen then break;
end else mouseBox(chatBox.getBounds, MOUSE_MOVE, MOUSE_HUMAN);
end;
if not boxOpen then exit();
depositBox.quickDeposit(QUICK_DEPOSITBOX_INVENTORY);
result := depositBox.close;
end;
procedure countFish;
var
bcnts: TPointArray;
i: integer;
begin
sharks_caught := 0;
swordfish_caught := 0;
tuna_caught := 0;
if not tabBackpack.open then exit;
for i := 1 to 28 do
begin
findColors(bcnts, ITEM_OUTLINE_BLACK, tabBackpack.getSlotBox(i));
case length(bcnts) of
113: inc(sharks_caught);
91: inc(swordfish_caught);
81: inc(tuna_caught);
end;
end;
end;
procedure printProgress;
var
secondsElapsed, expPHour, totalEXP: extended;
begin
clearDebug;
_sharks_caught := _sharks_caught + sharks_caught;
_swordfish_caught := _swordfish_caught + swordfish_caught;
_tuna_caught := _tuna_caught + tuna_caught;
totalEXP := (_sharks_caught * 110) + (_swordfish_caught * 100) + (_tuna_caught * 80);
secondsElapsed := (getTimeRunning/1000);
expPHour := (totalEXP * 60 * 60) / secondsElapsed;
smartImage.clearArea(intToBox(576, 200, 798, 278));
smartImage.drawBitmap(progyBmp, point(576, 200));
smartImage.DrawText('Run Time: ' + msToTime(GetTimeRunning, TIME_SHORT), Point(618, 224), upchars, false, 1376386);
smartImage.DrawText('EXP/Hour: ' + toString(round(expPHour)), Point(618, 234), upchars, false, 1376386);
smartImage.DrawText('Total EXP: ' + toString(totalEXP), Point(618, 244), upchars, false, 1376386);
case lowercase(players[currentPlayer].strings[1]) of
'random': smartImage.DrawText('Sharks: ' + toString(_sharks_caught) + ' Swordys: ' + toString(_swordfish_caught) + ' Tuna: ' + toString(_tuna_caught), Point(618, 254), upchars, false, 1376386);
'sharks': smartImage.DrawText('Sharks caught: ' + toString(_sharks_caught), Point(618, 254), upchars, false, 1376386);
'tuna', 'swordfish': smartImage.DrawText('Swordfish: ' + toString(_swordfish_caught) + ' - Tuna: ' + toString(_tuna_caught), Point(618, 254), upchars, false, 1376386);
end;
writeln('===========================================================');
writeln('Run Time: ' + msToTime(GetTimeRunning, TIME_SHORT));
writeln('EXP/Hour: ' + toString(round(expPHour)));
writeln('Total EXP: ' + toString(totalEXP));
case lowercase(players[currentPlayer].strings[1]) of
'random': writeln('Sharks: ' + toString(_sharks_caught) + ' Swordys: ' + toString(_swordfish_caught) + ' Tuna: ' + toString(_tuna_caught));
'sharks': writeln('Sharks caught: ' + toString(_sharks_caught), Point(618, 254), upchars, false, 1376386);
'tuna', 'swordfish':
begin
writeln('Swordfish: ' + toString(_swordfish_caught));
writeln('Tuna: ' + toString(_tuna_caught));
end;
end;
writeln('===========================================================');
end;
procedure prepareSelf;
begin
wait(random(500, 1500));
minimap.clickCompass;
wait(random(500, 1500));
mainscreen.setAngle(MS_ANGLE_HIGH);
wait(random(1, 1500));
exitTreasure;
end;
procedure setLocation;
var
sps_Pos: TPoint;
places: TPointArray;
dist: TIntegerArray;
begin
sps_Pos := fishGuild.getPlayerPos;
if sps_Pos.equals([-1, -1]) then exit;
//bank, north, south
dist := [distance(sps_Pos, paths[0][high(paths[0])]), abs(sps_Pos.y - paths[1][high(paths[1])].y), abs(sps_Pos.y - paths[2][high(paths[2])].y)];
if dist[0] < 10 then
begin
players[currentPlayer].location := 'bank';
exit;
end;
case dist.returnInArray(min(dist[1], dist[2])) of
1: players[currentPlayer].location := 'north_dock';
2: players[currentPlayer].location := 'south_dock';
else players[currentPlayer].location := 'lost';
end;
end;
procedure mainLoop;
var
bankingIt: function: boolean;
begin
if not isLoggedIn then
begin
print('We''re not logged in. respawning client.');
wait(randomRange(5000, 10000));
smartReloadClient((5 * 60000) + random(15000));
if (waitClientReady()) then
begin
print('Client succesfully loaded after reload');
end else
begin
print('Client never reloaded after restart..', TDebug.FATAL);
terminateScript;
end;
if not players[currentPlayer].isActive then players.next(false);
if players[currentPlayer].login then prepareSelf;
if not isLoggedIn then
begin
writeln('Terminating, not logged in.');
terminateScript;
end;
end;
setLocation;
if tabBackpack.isFull or need_pouch then
begin
countFish;
//I use a function pointer here for fun
if (not(need_pouch) and USE_Deposit_Box) then
bankingIt := @handleDepositing else bankingIt := @HandleBanking;
if bankingIt then
begin
wait(randomRange(600, 1000));
if need_pouch then
begin
if fishing_fam.points_needed > fishing_fam.getPoints then renew_points;
if fishing_fam.summon(1, true) then need_pouch := false;
end;
printProgress;
if walk(players[currentPlayer].strings[0]) then
begin
end else
print('Failed to walk to: '+players[currentPlayer].strings[0]);
end else print('Failed to handle banking');
end;
if (players[currentPlayer].location = 'bank') then walk(players[currentPlayer].strings[0]);
if goFishing then waitWhileFishing else if not(tabBackpack.isFull) then
walk(players[currentPlayer].strings[0]);
end;
begin
if USE_DirectX then smartPlugins := ['d3d9.dll'];
smartEnableDrawing := true;
smartShowConsole := false;
disableSRLDebug := true;
disableIPScreenshots := true;
setupsrl;
declarePlayers;
initPaths;
initColors;
initBmp;
initFamiliar;
need_pouch := players[currentPlayer].strings[2] <> '';
setLength(fish_spot2D, 15);
if not isLoggedIn then if players[currentPlayer].login then prepareSelf;
while players.getActive > 0 do mainLoop;
end.
SRL's F.A.Q. (Error fixes) | How to Convert SRL-5 Scripts to SRL-6 | Draynor Chop N' Bank (RS3)| AIO Superheater (RS3)
T - E - A - MTogether Everyone Achieves More
What I did was I re-downloaded again the script(erased the content of my old folder and replaced it, kept your Map version in the Includes/SPS/img/), Yes I had checked for Extensions/SRL/SPS updates, didn't need any(already had the latest) and tested the script again and that is when I decided to go here posting about the issues :P
Thanks for posting yours, will re-test in a bit and update this post... now if it acts the same then I have no idea what is wrong. My ingame settings are exactly as the Ash tutorial setup which I've used on several scripts suicide runs.
SRL's F.A.Q. (Error fixes) | How to Convert SRL-5 Scripts to SRL-6 | Draynor Chop N' Bank (RS3)| AIO Superheater (RS3)
T - E - A - MTogether Everyone Achieves More
Alright well I can't say anything about going to the deposit box even when that option isn't checked, but opening the deposit box works fine for me. I would just double check your settings are correct. Sometimes interfaces like that can be moved slightly which messes up SRL, so make sure the deposit box interface is in the default position.
SRL's F.A.Q. (Error fixes) | How to Convert SRL-5 Scripts to SRL-6 | Draynor Chop N' Bank (RS3)| AIO Superheater (RS3)
T - E - A - MTogether Everyone Achieves More
Update
I updated the SPS Map, this should help quite a bit! Please let me know what bugs there are!
updated banker colors so that banking option works again
The issue with the deposit box is a color issue, i submitted a pull request to SRL-6
Update 2
added player form
hopefully fixed issue where it clicked the top left
Last edited by footballjds; 04-17-2014 at 06:13 PM.
Thanks @footballjds; just got 99 fishing today.
SRL's F.A.Q. (Error fixes) | How to Convert SRL-5 Scripts to SRL-6 | Draynor Chop N' Bank (RS3)| AIO Superheater (RS3)
T - E - A - MTogether Everyone Achieves More
That keeps happening
------ smartSetupDrawing(): Succesfully setup SMART drawing
---- Waiting up to 5 minutes for RS to load...
---- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
------ TRSActionBar.__find(): result = false
---- Client is ready.
---- Setup SRL in 109ms.
-- setupSRL(): True
-- fishGuild.init()
---- Path exists (C:\Simba\Includes\SPS\img\fish_guild.png)
---- Setup area "fish_guild" in 31ms
-- fishGuild.init()
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
---- TRSMinimap.clickCompass(): Clicked compass
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- fishGuild.getPlayerPos(): Angle is at 252.897271030948, Setting angle to 0 degrees
-- TRSChooseOption._select():
---- ERROR: ChooseOption menu never appeared
-- TRSChooseOption.select() result = false
---- TRSMinimap.clickCompass(): Clicked compass
-- WARNING: fishGuild.getPlayerPos(): Didn't find enough matches accurately calc your postion
-- fishGuild.getPlayerPos(): result = {X = -1, Y = -1}, took 2453 ms
---- TRSGameTab.__initTabs(): Setup gametab properties
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- fishGuild.getPlayerPos(): Angle is at 252.897271030948, Setting angle to 0 degrees
---- TRSMinimap.clickCompass(): Clicked compass
-- WARNING: fishGuild.getPlayerPos(): Didn't find enough matches accurately calc your postion
-- fishGuild.getPlayerPos(): result = {X = -1, Y = -1}, took 2297 ms
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- fishGuild.getPlayerPos(): Angle is at 252.897271030948, Setting angle to 0 degrees
-- TRSChooseOption._select():
---- ERROR: ChooseOption menu never appeared
-- TRSChooseOption.select() result = false
---- TRSMinimap.clickCompass(): Clicked compass
-- WARNING: fishGuild.getPlayerPos(): Didn't find enough matches accurately calc your postion
-- fishGuild.getPlayerPos(): result = {X = -1, Y = -1}, took 2547 ms
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- fishGuild.getPlayerPos(): Angle is at 252.897271030948, Setting angle to 0 degrees
---- TRSMinimap.clickCompass(): Clicked compass
-- WARNING: fishGuild.getPlayerPos(): Didn't find enough matches accurately calc your postion
-- fishGuild.getPlayerPos(): result = {X = -1, Y = -1}, took 2344 ms
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- fishGuild.getPlayerPos(): Angle is at 252.897271030948, Setting angle to 0 degrees
---- TRSMinimap.clickCompass(): Clicked compass
-- WARNING: fishGuild.getPlayerPos(): Didn't find enough matches accurately calc your postion
-- fishGuild.getPlayerPos(): result = {X = -1, Y = -1}, took 2187 ms
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- fishGuild.getPlayerPos(): Angle is at 252.897271030948, Setting angle to 0 degrees
-- TRSChooseOption._select():
---- ERROR: ChooseOption menu never appeared
-- TRSChooseOption.select() result = false
---- TRSMinimap.clickCompass(): Clicked compass
-- WARNING: fishGuild.getPlayerPos(): Didn't find enough matches accurately calc your postion
-- fishGuild.getPlayerPos(): result = {X = -1, Y = -1}, took 2454 ms
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- fishGuild.getPlayerPos(): Angle is at 252.897271030948, Setting angle to 0 degrees
---- TRSMinimap.clickCompass(): Clicked compass
-- WARNING: fishGuild.getPlayerPos(): Didn't find enough matches accurately calc your postion
-- fishGuild.getPlayerPos(): result = {X = -1, Y = -1}, took 1843 ms
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- fishGuild.getPlayerPos(): Angle is at 252.897271030948, Setting angle to 0 degrees
---- TRSMinimap.clickCompass(): Clicked compass
-- WARNING: fishGuild.getPlayerPos(): Didn't find enough matches accurately calc your postion
-- fishGuild.getPlayerPos(): result = {X = -1, Y = -1}, took 1968 ms
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- fishGuild.getPlayerPos(): Angle is at 252.897271030948, Setting angle to 0 degrees
---- TRSMinimap.clickCompass(): Clicked compass
-- WARNING: fishGuild.getPlayerPos(): Didn't find enough matches accurately calc your postion
-- fishGuild.getPlayerPos(): result = {X = -1, Y = -1}, took 2156 ms
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- fishGuild.getPlayerPos(): Angle is at 252.897271030948, Setting angle to 0 degrees
---- TRSMinimap.clickCompass(): Clicked compass
-- WARNING: fishGuild.getPlayerPos(): Didn't find enough matches accurately calc your postion
-- fishGuild.getPlayerPos(): result = {X = -1, Y = -1}, took 1984 ms
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- fishGuild.getPlayerPos(): Angle is at 252.897271030948, Setting angle to 0 degrees
---- TRSMinimap.clickCompass(): Clicked compass
-- WARNING: fishGuild.getPlayerPos(): Didn't find enough matches accurately calc your postion
-- fishGuild.getPlayerPos(): result = {X = -1, Y = -1}, took 2094 ms
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- fishGuild.getPlayerPos(): Angle is at 252.897271030948, Setting angle to 0 degrees
---- TRSMinimap.clickCompass(): Clicked compass
-- WARNING: fishGuild.getPlayerPos(): Didn't find enough matches accurately calc your postion
-- fishGuild.getPlayerPos(): result = {X = -1, Y = -1}, took 2266 ms
-- fishGuild.walkPath(): result = False
---- Waiting while the player is moving...
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- fishGuild.getPlayerPos(): Angle is at 252.897271030948, Setting angle to 0 degrees
---- TRSMinimap.clickCompass(): Clicked compass
-- WARNING: fishGuild.getPlayerPos(): Didn't find enough matches accurately calc your postion
-- fishGuild.getPlayerPos(): result = {X = -1, Y = -1}, took 2000 ms
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- WARNING: TRSActionBar.__findButton(): Failed to find any vaild bounds
---- TRSActionBar.__find(): result = false
-- fishGuild.getPlayerPos(): Angle is at 252.897271030948, Setting angle to 0 degrees
---- TRSMinimap.clickCompass(): Clicked compass
Having a problem, can anyone help, script works perfectly for about an hour then this happens -
Exception in Script: Runtime error: "Invalid floating point operation" at line 254, column 20 in file "C:\Simba\Includes\SRL-6\lib\core\mouse.simba"
The following bitmaps were not freed: [Minimap Mask, SMART Debug Image, 2, Gametab Bitmap[0], Gametab Bitmap[1], Gametab Bitmap[2], Gametab Bitmap[3], Gametab Bitmap[4], Gametab Bitmap[5], Gametab Bitmap[6], Gametab Bitmap[7], Gametab Bitmap[8], Gametab Bitmap[9], Gametab Bitmap[10], Gametab Bitmap[11], Gametab Bitmap[12], Gametab Bitmap[13]]
File[C:\Simba\Includes\SRL-6/logs/SRL log (22-04-14 at 05.34.27 AM).txt] has not been freed in the script, freeing it now.
There are currently 1 users browsing this thread. (0 members and 1 guests)