Перейти к содержанию
Форум шарда Middle-Earth
Авторизация  
sia

Lumberjacking.oajs

Рекомендуемые сообщения

Отличный скрипт без заморочек! Сам определяет деревья в радиусе и идёт рубить. В 2х местах меняем Orion.UseObject('0x70EA3902'); на свой топор и всё!

Работы скрипта как раз хватает на 2 часа, до капчи и чтоб дать поесть. 

В орионе я не силён, поэтому, кто допилит до ума  поделится, + в карму! ;)

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(1000);
Orion.UseObject('0x70EA3902');
Orion.WaitTargetTile('tree',treeWorldLocation[i][0],treeWorldLocation[i][1],0);
Orion.Wait(40000);
if(Orion.InJournal('into your pack|but fail to', 'sys|my') != null){
LumberAgain(treeWorldLocation[i][0],treeWorldLocation[i][1]);
}

if(Player.Weight() >= Player.MaxWeight()+14000) break;
}
}

function FindTreesInSurrArea()
{
var maxSearchDistance=30;
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 = 'in your pack|but fail to|not enough wood|That is too far away|guardians are angry|no line of sight|have found some deadwood|place any wood into';
while (!Player.Dead()){
Orion.UseObject('0x70EA3902');
Orion.WaitTargetTile('tree',x,y,0);
var msg = Orion.WaitJournal(text, Orion.Now(), Orion.Now() + 2000, 'sys|my');
if(msg !=null) break;
Orion.Wait(100);
}
Orion.ClearJournal();
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Авторизация  

×
×
  • Создать...