Может кому пригодится исправленная версия скрипта. Сам берёт топоры из бекпака (нет необходимости с каждым новым топором, вводить новый айди топора), рубит деревья не по одному разу а пока не вырубит под 0. В общем более стабильная версия (в дополнительных настройках не нуждается, запустил и забыл пока не закончатся деревья или пока не переполнится)
Code:
function CutTreeByWorldLoc()
{
Orion.ClearJournal();
var treeWorldLocation = FindTreesInSurrArea();
for(i=0;i<treeWorldLocation.length;i++){
Orion.WalkTo(treeWorldLocation[i][0],treeWorldLocation[i][1],0);
Orion.Wait(2000);
Orion.UseType('0x0F43');
Orion.WaitTargetTile('tree',treeWorldLocation[i][0],treeWorldLocation[i][1],0);
Orion.Wait(8000);
if(Orion.InJournal('in your pack|but fail to', 'sys|my' ) != null){
LumberAgain(treeWorldLocation[i][0],treeWorldLocation[i][1]);
}
if(Player.Weight() >= Player.MaxWeight()-60) break;
}
}
function FindTreesInSurrArea()
{
var maxSearchDistance=50;
var treeWorldLocations=createArr(200,200);
var trueWorldLocCounter=0;
for(i=(Player.X()-maxSearchDistance);i<(Player.X()+maxSearchDistance+1);i++){
for(j=(Player.Y()-maxSearchDistance);j<(Player.Y()+maxSearchDistance+0);j++){
//Orion.Print("Searching X= " + i + "and Y= " + j + " location");
if(Orion.ValidateTargetTile('tree', i, j)){
Orion.Print("Found a tree, location is saved as " + (trueWorldLocCounter+1));
treeWorldLocations[trueWorldLocCounter][0]=i;
treeWorldLocations[trueWorldLocCounter][1]=j;
trueWorldLocCounter++;
}
}
}
treeWorldLocations.length=trueWorldLocCounter;
return treeWorldLocations;
}
function createArr(x, y) {
var arr = new Array(x);
for (var i = 0; i < x; i++) {
arr[i] = new Array(y);
}
return arr;
}
function LumberAgain(x,y)
{
var text = 'nothing|chop|but fail to|there is nothing there to chop|That is too far away|no line of sight|place any wood into|lumberjacking';
while (!Player.Dead()){
Orion.UseType('0x0F43');
Orion.WaitTargetTile('tree',x,y,0);
var msg = Orion.WaitJournal(text, Orion.Now(), Orion.Now() + 7000, 'sys|my');
if(msg !=null) break;
Orion.Wait(100);
}
Orion.ClearJournal();
}