SRL Archive - OSR Help

Simba skipping lines?


HardRockers

2012-01-02 22:22:36

Ok I am working on perfecting my miner, and I am working on my M1D1 procedure. In this procedure i want it to click the ore, wait until it does done mining the ore, and then Drop the ore, then repeat. When i run this, It will mine a few ore, drop one of them, and the cease to do anything. Why would this be? I can post other procedures if needed.

I use almost the same thing in all 3 of my method options in my script, and the other 2 work perfectly, it is just this m1d1 that is killing me

(the reason i have untilfull is a failsafe, after that I have dropall, and this is all inside of anther repeat.)

The reason i ask if it is skipping lines, it is like it misses my drop procedure a third of the time.


repeat
MineOre;
WaitFunc(@MineOre, 250, 15000);
DropOre;
ProgressReport;
Stats_Commit;
Until (InvFull);

MylesMadness

2012-01-02 22:24:05

You're calling "MineOre" twice in a row. Try removing the first Mineore

Edit: Depending on how mineore is written, you might be using waitfunc wrong as well. If you could post that I will take look.

HardRockers

2012-01-02 22:29:04

ok, and i just started using WaitFunc, I have tried everything and it seems to do the same things.

Remember, this is method 2:


Function MineOre:Boolean;
Var
x,y, MineCounter: Integer;
Begin
If Not(LoggedIn) Then Exit;
FindNormalRandoms;
PlusOne:= InvCount +1;
x:= MSCX;
y:= MSCY;

If FindObjCustom(x, y, ['Mine','Rocks','e R'], [2832738, 2502212, 2701150,2371667], 5) Then
Begin
WriteLn('There is ore here.');
GetMousePos(x, y);
Mouse(x, y, 2, 2, True);
IncEx(Count, 1);
stats_IncVariable('Iron Ore (Mined)', 1);
Flag;
Case(Method) of
1: Repeat
FindNormalRandoms;
MarkTime(MineCounter);
wait(100);
Antiban;
If InvCount= PlusOne Then
WriteLn('You got ore');
Until (InvCount= PlusOne) OR (TimeFromMark(MineCounter) > 3000);
2: Repeat
FindNormalRandoms;
MarkTime(MineCounter);
wait(100);
If InvCount= PlusOne Then
WriteLn('You got ore');
Until (InvCount= PlusOne) OR (TimeFromMark(MineCounter) > 3000);
3:Repeat
FindNormalRandoms;
MarkTime(MineCounter);
wait(100);
Antiban;
If InvCount= PlusOne Then
WriteLn('You got ore');
Until (InvCount= PlusOne) OR (TimeFromMark(MineCounter) > 3000);
end;
end;
end;

MylesMadness

2012-01-03 15:10:25

You shouldn't need to use waitfunc at all, your procedure already waits. Waitfunc basically calls a procedure repeatedly until it returns true.