Добыча дерева (Lumberjacking): различия между версиями
Внешний вид
Support (обсуждение | вклад) Нет описания правки |
Support (обсуждение | вклад) Нет описания правки |
||
| Строка 5: | Строка 5: | ||
// TODO: Добавить проверку на гвардов, добавить забор топоров из сундука | // TODO: Добавить проверку на гвардов, добавить забор топоров из сундука | ||
var endMsg = "You can't cut it down|Target can not be seen"; | var endMsg = "You can't cut it down|Вы не можете срубить это|Target can not be seen|Цель не видна"; | ||
var dropAxe = 'may have been destroer'; | var dropAxe = 'may have been destroer'; | ||
| Строка 80: | Строка 80: | ||
for (var i = 0; i < 100; i++) { | for (var i = 0; i < 100; i++) { | ||
if (Orion.InJournal('You put the|You hack at|' + endMsg)) | if (Orion.InJournal('You put the|Вы роняете|Вы положили|You hack at|Вы некоторое время рубите дерево|' + endMsg)) | ||
break; | break; | ||
| Строка 130: | Строка 130: | ||
function checkByHiddingRevealed() | function checkByHiddingRevealed() | ||
{ | { | ||
if (Orion.InJournal('You have | if (Orion.InJournal('You have been revealed|Вас раскрыли')) { | ||
setHidding(); | setHidding(); | ||
} | } | ||
| Строка 142: | Строка 142: | ||
Orion.Wait(3000); | Orion.Wait(3000); | ||
if (Orion.InJournal('You have hidden yourself')) { | if (Orion.InJournal('You have hidden yourself|Вы хорошо спрятались')) { | ||
break; | break; | ||
} | } | ||
Текущая версия от 08:57, 4 апреля 2026
Скрипт рубки леса. Персонаж сам ходит между точками, валит лес и потом рубит сектор 7 на 7 вокруг себя. Для скрипта понадобиться 2 руны и место где можно выкладывать нарубленные logs.
// Скрипт на рубку леса, автор Jelu. 2023-08-21
// TODO: Добавить проверку на гвардов, добавить забор топоров из сундука
var endMsg = "You can't cut it down|Вы не можете срубить это|Target can not be seen|Цель не видна";
var dropAxe = 'may have been destroer';
// Серийник контейнера куда выгружать логи, смотрим через _info
var serialConteinerForLog = '0x0';
// Координаты возле контейнера на базе, смотреть координаты рядом а не сундука, чтобы персонаж мог подойти на эту координату, через .where
var coordinateConteinerForLog = [xxxx, yyy];
// Серийник руны домой. смотрим через _info
var serialRuneToHome = '0x0';
// Серийник руны в лес, смотрим через _info
var serialRuneToWood = '0x0';
// Координаты точек где будем рубить лес, можно добавить неограниченное кол-во точек, формат [xxxx, yyy]
var points = [
[xxxx, yyy],
[xxxx, yyy],
];
// Сохраняем последнюю позицию, для возобновления рубки
var savePoint = null;
function main()
{
Orion.Print('Начинаем рубить лес. Летим в лес');
//Реколимся обратно на улицу и продолжаем скрипт
Orion.Cast('32', serialRuneToWood);
Orion.Wait(3000);
setHidding();
for (var p = 0; p < points.length; p++)
{
if (checkMaxWeight()) {
moveHomeAndMoveLogToBag();
}
Orion.WalkTo(points[p][0], points[p][1], 0, 0);
setHidding();
Orion.Print('Первая рубка');
lumberAction(points);
Orion.Print('Вторая рубка');
lumberAction(points);
}
Orion.Print('Летим домой, конец скрипта');
// Реколимся домой
Orion.Cast('32', serialRuneToHome);
Orion.Wait(3000);
}
function lumberAction(points)
{
for (var x = -3; x <= 3; x++)
{
for (var y = -3; y <= 3; y++)
{
while (true)
{
if (checkMaxWeight()) {
savePoint = points;
moveHomeAndMoveLogToBag();
}
Orion.ClearJournal();
Orion.WaitTargetTileRelative('tree', x, y, 0);
Orion.UseType('0x0F43');
for (var i = 0; i < 100; i++) {
if (Orion.InJournal('You put the|Вы роняете|Вы положили|You hack at|Вы некоторое время рубите дерево|' + endMsg))
break;
Orion.Wait(100);
}
if (Orion.InJournal(endMsg))
break;
}
}
}
}
function checkMaxWeight()
{
return (Player.Weight() + 35) >= Player.MaxWeight();
}
function moveHomeAndMoveLogToBag()
{
Orion.Print('Летим домой выгружаться');
// Реколимся домой
Orion.Cast('32', serialRuneToHome);
Orion.Wait(3000);
//Идем к сумке
Orion.WalkTo(coordinateConteinerForLog[0], coordinateConteinerForLog[1], 0, 0);
// Выгружаем все из сумки в контейнер
while (Orion.Count('0x1BDD') > 0) {
Orion.DragItemType('0x1BDD', 'any');
Orion.DropDraggedItem(serialConteinerForLog);
Orion.Wait(1000);
}
Orion.Print('Летим в лес дальше рубить');
//Реколимся обратно на улицу и продолжаем скрипт
Orion.Cast('32', serialRuneToWood);
Orion.Wait(3000);
if (savePoint != null) {
Orion.WalkTo(savePoint[0], savePoint[1], 0, 0);
Orion.Wait(3000);
setHidding();
savePoint = null;
}
}
function checkByHiddingRevealed()
{
if (Orion.InJournal('You have been revealed|Вас раскрыли')) {
setHidding();
}
}
function setHidding()
{
for (var i=0; i<=10; i++) {
Orion.ClearJournal();
Orion.UseSkill('Hiding');
Orion.Wait(3000);
if (Orion.InJournal('You have hidden yourself|Вы хорошо спрятались')) {
break;
}
}
}