I have not personally used this script but I have written my own private yew/magic choppers and would like to give some advice, one scripter to another. I have ran my script over 100 hours and it has yet to break a single axe. My code for finding an ent is as follows.
Simba Code:
Procedure FindEnt;
begin
if (not (IsUpText('hop'))) then
begin
writeln ('Error: Cursor must be on the tree!');
Exit;
end;
if (CountColorTolerance(65535,82, 5, 110, 23, 55) > 20) then
begin
writeln ('An ent has been detected, getting off...');
Mmouse(643, 84, 3, 3);
Clickmouse2(mouse_left);
writeln ('Waiting a moment for the ent to go away...');
wait(randomrange(20000,25000));
end;
end;
The cursor must be on the tree so I suggest calling it between moving the cursor to the tree and actually clicking the tree. The simple fact of the matter is all Ents appear immediately after a player clicks the tree, so you will want to call this function right after clicking the tree also. Bird nests are actually quite easy to pick up, and can be very lucrative if you find a yew or magic seed. Here is my function for finding bird nests. The findnests function simply returns the number of bird nests the player has in their inventory.
Simba Code:
Procedure PickupNest;
var
x, y, timeout, amount: integer;
begin
amount := FindNests;
writeln ('Currently have ' + inttostr(amount) + ' bird nest(s).');
Marktime(timeout);
Repeat
if (FindDTM(DTMFromString('mrAAAAHic42BgYGAHYhYg5gBibiifmQECOKFynFB5FqgaRiBmg6ppLeFl6KkSYJjcKMBgZ6HJYGWux2BupMogIynMYGWkwKALVIMPMxLAMAAAqg8HtQ=='), x, y, 0, 0, 515, 337)) then
begin
MMouse(x, y, 2, 2);
writeln ('Two: ' + GetUpText);
if (Pos('nest', GetUpText) > 0) then
begin
writeln ('Found possible seed nest...');
writeln ('Seed nest found, picking up...');
Clickmouse2(mouse_left);
Flag;
wait(randomrange(800,1200));
end;
if (FindNests > amount) then
begin
nests := nests + 1;
writeln ('Successfully looted a seed nest!');
writeln ('We managed to pick up a seed nest!', true);
exit;
end;
end;
if (FindDTM(DTMFromString('mlwAAAHicY2dgYGAFYiYGCOACYh4gZgNidqgcJxAzQ2lWqDoOII5O52AwN9ZmcHEwZ7Cz0ARjb3drBmMrBgZ+oLwkECtjwYx4MBQAAL2FBck='), x, y, 0, 0, 515, 337)) then
begin
MMouse(x, y, 2, 2);
writeln ('Three: ' + GetUpText);
if (Pos('nest', GetUpText) > 0) then
begin
writeln ('Found possible ring nest...');
writeln ('Ring nest found, picking up...');
Clickmouse2(mouse_left);
Flag;
Pause(randomrange(800,1200));
end;
if (FindNests > amount) then
begin
nests := nests + 1;
writeln ('Successfully looted a ring nest!');
writeln ('We managed to pick up a ring bird nest!', true);
exit;
end;
end;
if (findObJCustom(x, y, ['ake', 'est'], [2767168, 2503994, 6710893], 5)) then
begin
MMouse(x, y, 2, 2);
writeln ('FindObjCustom: ' + GetUpText);
if (Pos('nest', GetUpText) > 0) then
begin
writeln ('Bird nest obj found, picking up...');
Clickmouse2(mouse_left);
Flag;
Pause(randomrange(800,1200));
end;
if (FindNests > amount) then
begin
nests := nests + 1;
writeln ('Successfully looted a bird' + chr(39) + ' nest!');
writeln ('We managed to pick up a bird nest!', true);
exit;
end;
end;
Pause (randomrange(800,1100));
if (TimeFromMark(timeout) > 20000) then
begin
update ('Could not find bird nest, resuming script...');
exit;
end;
until (FindNests > amount);
end;
If you need assistance with anything having to do with scripting feel free to shoot me a PM and I will be happy to help. Best of luck with the script.