Originally Posted by
Barr
I'm not sure why that issue arises if I can be completely honest, it seemed like a good fix at the time to simply target the cluster and hop.
I was also hoping to ask you regarding a way to detect if the character is mining, but I think pixel shift is probably best bet for that.
Because you're simply mining 3 out of the 5 rocks available, and I've noticed most accounts do just that; completely ignoring the remaining 2 silver rocks to the north.
Pixelshift is a way to go however the downside is if you're competing for an ore and the other player(s) gets the ore, your mining animation remains constant for a period of time. A better way would be to track the rock that you clicked and wait until A: you receive an ore or B: the rock changes (the ore was mined by another player). I made this procedure to track the rock we clicked on; you'll need to modify it for your script but I'm sure given your ability you can decipher how it works. Just feed the function the point at which you found & clicked the target rock and call this function immediately after you click the rock.
Simba Code:
function waitForOre(rockPoint:tpoint): Boolean;
var
sBox : TBox;
T,T2 : Timer;
c : Integer;
tPnt : TPoint;
pnts : TPointArray;
begin
tPnt := rockPoint;
sBox := pointToBox(tPnt, 36); // Size of a standard tile
c := getInvCount();
T2.start();
T.start();
while (T.timeElapsed() < MAXTIMEOUT) do
begin
if getInvCount() > c then exit(true);
if obj_Rock.findAllIn_2(sBox, 5, tPnt, pnts) then
begin
if getInvCount() > c then exit(true);
if not pointInBox(pnts[0], sBox) then
begin
if getInvCount() > c then exit(true);
warn('Someone else got the ore!');
{$IFDEF SMART}
OS_SMART.__Graphics.Clear();
{$ELSE}
LayerBMP.clearGraphics();
{$ENDIF}
exit;
end;
if not pointsInDist(tPnt, pnts[0], 10) then
T2.start();
tPnt := pnts[0];
sBox := pointToBox(tPnt, 36);
{$IFDEF SMART}
OS_SMART.__Graphics.Clear();
OS_SMART.__Graphics.DrawBox(sBox, False, clLime);
{$ELSE}
LayerBMP.clearGraphics();
LayerBMP.DrawBox(sBox, clLime);
{$ENDIF}
end else
begin
if getInvCount() > c then exit(true);
warn('Someone else got the ore!');
{$IFDEF SMART}
OS_SMART.__Graphics.Clear();
{$ELSE}
LayerBMP.clearGraphics();
{$ENDIF}
exit;
end;
if (T2.timeElapsed() > 1290+random(470)) then
begin
if clickContinue(False) then
exit(true);
doAntiBans();
end;
end;
result := False;
end;
Feel free to remove the debugging. I like to add it in to see the object the script is currently tracking.