Simba Code:
procedure CutOak;
var
t: Integer;
begin
repeat
if FindObj(x, y, 'hop down Oak', 3623506, 15) then
begin //need a begin to perform >1 actions after a conditional statement
Mouse(x, y, 2, 2, false);
WaitOption('hop down Oak',1000); //in case of lag the option wont appear right after u click
t:=GetSystemTime+RandomRange(10000,15000);
repeat
Wait(1200 + Random(250));
if t<GetSystemTime then break;
until not IsUpText('Oak') or (InvFull); //Based on this line, of course.
until (InvFull);
end;
I've added a break that it will break out of the wait after 10-15 sec (u can change the timing), uptext check would be highly unreliable though as your character will move when u run to the tree and ur mouse will be off the tree right away. AveragePixelShift is the most reliable/efficient method but u can use a loop with GetXpBar to make it stop until say, no xp gained for 5sec, not to efficient if u take quite long to cut the tree though.