Рубка деревьев в Миноке (Lumberjacking in Minoc)
Внешний вид
Скрипт для Legnes Assist. Скрипт подойдёт для начинающих игроков, которые хотят рубить городе Минок или Ёв. Скопируйте код скрипта в ассист и проставьте необходимые параметры. После того как дерево упало, персонаж полностью рубит лежащее дерево и идёт к следующему.
Автор скрипта: Hotride
// Лес для рубки:
// 0 - Minoc
var TownType = 0;
// Использовать фильтр логов, 0 - не использовать, 1 - использовать
var UseLogsNameFilter = 0;
// Названия логов для игнорирования дерева (не продолжать рубить)
var IgnoreLogsNames = 'the log';
// Использовать хайд, 0 - не использовать, 1 - использовать
var UseHidding = 0;
// Точки банков для TownType
// Первая точка - координаты, куда нужно вставть
// Вторая - запаска, если на первую не встали (тайл заблокирован)
var BankSpots =
[
// TownType == 0
[ [2564, 480], [2564, 479] ]
];
// Не трогать!!!
var BankX = BankSpots[TownType][0][0];
var BankY = BankSpots[TownType][0][1];
var Bank2X = BankSpots[TownType][1][0];
var Bank2Y = BankSpots[TownType][1][1];
function UseHatchet(_private)
{
if (!Orion.UseType('0x0F43', 'any', self, false))
{
if (!Orion.UseType('0x0F43'))
{
Orion.Print('0x0021', 'Your tool is gone!');
Orion.Terminate('all');
}
}
}
function LumberPart(tile)
{
var text = 'в свой рюкзак|in your pack|Вы некоторое время рубите дерево, но не можете получить|but fail to produce any|Цель находится вне прямой видимости|too far away to chop|Target is not in line of sight|Вы не можете срубить это|cut it down';
if (!Orion.WalkTo(tile.X(), tile.Y(), tile.Z(), 2, 255, true))
return false;
while (true)
{
if (Player.Weight('%') >= 95)
{
var oldX = Player.X();
var oldY = Player.Y();
Orion.Print('0x0021', 'Weight limit reached!!!');
if (!Orion.WalkTo(2514, 561, 0, 0, 255, true))
{
if (!Orion.WalkTo(2513, 561, 0, 1, 255, true))
Orion.PauseScript();
}
Orion.Say('bank');
Orion.Wait(200);
UnloadLogs();
if (Orion.UseType('0x09B7|0x09F2|0x097B', '0', lastcontainer))
Orion.Wait(100);
while (Orion.Count('0x0F43') < 4)
{
if (!Orion.MoveItemType('0x0F43', 'any', lastcontainer))
break;
Orion.Wait(400);
}
Orion.WalkTo(oldX, oldY, 0, 0, 255, true);
}
var now = Orion.Now();
Orion.WaitTargetTile(tile.Graphic(), tile.X(), tile.Y(), tile.Z());
UseHatchet(0);
var msg = Orion.WaitJournal(text, now, now + 5000, 'my|sys');
if (msg != null && msg.FindTextID() > 3)
{
if ((msg.FindTextID() >= 4 && msg.FindTextID() <= 6) && !Orion.WalkTo(tile.X(), tile.Y(), tile.Z(), 1, 255, true))
return false;
return true;
}
Orion.Wait(10);
}
return true;
}
function LumberParts(_private)
{
var parts =
[
0x3A97, 0x3A98, 0x3A99, 0x3AA2, 0x3AA1, 0x3AA0, 0x3A9A, 0x3A9B, 0x3A9C, 0x3A9D, 0x3A9E, 0x3A9F,
0x3AA9, 0x3AAA, 0x3AB9, 0x3AB8, 0x3AAB, 0x3AAC, 0x3AB7, 0x3AB6, 0x3AAD, 0x3AAC, 0x3AAE, 0x3AAF, 0x3AB3, 0x3AB0, 0x3AB1, 0x3AB4, 0x3AB5, 0x3AB2,
0x3A80, 0x3A81, 0x3A82, 0x3A83, 0x3A84, 0x3A8F, 0x3A8E, 0x3A8D, 0x3A8C, 0x3A88, 0x3A87, 0x3A86, 0x3A85, 0x3A8B, 0x3A8A, 0x3A89,
0x3A10, 0x3A11, 0x3A12, 0x3A13, 0x3A1B, 0x3A1A, 0x3A1C, 0x3A1D, 0x3A1E, 0x3A1F, 0x3A20, 0x3A21, 0x3A16, 0x3A14, 0x3A15, 0x3A19, 0x3A18, 0x3A17,
0x39FC, 0x39FD, 0x39FE, 0x39FF, 0x3A00, 0x3A09, 0x3A08, 0x3A07, 0x3A04, 0x3A03, 0x3A02, 0x3A01, 0x3A05, 0x3A06,
0x3AC0, 0x3AC1, 0x3AC2, 0x3AC3, 0x3ACE, 0x3ACD, 0x3ACC, 0x3AC8, 0x3AC7, 0x3AC6, 0x3AC5, 0x3ACB, 0x3AC4, 0x3AC9, 0x3ACA,
0x3A5A, 0x3A5B, 0x3A5C, 0x3A5D, 0x3A5E, 0x3A62, 0x3A61, 0x3A60, 0x3A5F, 0x3A63, 0x3A67, 0x3A66, 0x3A65, 0x3A64,
0x3A36, 0x3A37, 0x3A38, 0x3A39, 0x3A3A, 0x3A3E, 0x3A3D, 0x3A3C, 0x3A40, 0x3A3F, 0x3A3B, 0x3A40, 0x3A3F,
0x3A6E, 0x3A6F, 0x3A70, 0x3A71, 0x3A72, 0x3A79, 0x3A78, 0x3A77, 0x3A76, 0x3A75, 0x3A74, 0x3A73,
0x3A97, 0x3A98, 0x3A99, 0x3A9A, 0x3A9B, 0x3A9E, 0x3A9D, 0x3A9F, 0x3AA2, 0x3AA1, 0x3AA0,
0x3A47, 0x3A48, 0x3A49, 0x3A4A, 0x3A4B, 0x3A4C, 0x3A53, 0x3A52, 0x3A4F, 0x3A4E, 0x3A4D
];
var tiles = Orion.GetTilesInRect('any', Player.X() - 15, Player.Y() - 15, Player.X() + 15, Player.Y() + 15);
var result = false;
for (var i = 0; i < tiles.length; i++)
{
var graphic = parseInt(tiles[i].Graphic(), 16);
if (parts.indexOf(graphic) != -1)
{
if (LumberPart(tiles[i]))
result = true;
}
}
return result;
}
function LumberTree(tile)
{
if (!Orion.WalkTo(tile.X(), tile.Y(), tile.Z(), 2, 255, true))
return;
Orion.WaitTargetTile(tile.Graphic(), tile.X(), tile.Y(), tile.Z());
UseHatchet(0);
Orion.Wait(4500);
while (LumberParts(0))
Orion.Wait(100);
}
function LumberTrees()
{
var x = Player.X();
var y = Player.Y();
LumberParts(0);
var trees =
[
0x0CDD, 0x0CCD, 0x0CD3, 0x0CDA, 0x0CD8,
0x0CE6, 0x0CE3, 0x0CD6
];
while (true)
{
Orion.WalkTo(x, y, 0, 1, 255, true);
var tiles = Orion.GetTilesInRect('any', x - 15, y - 15, x + 15, y + 15);
for (var i = 0; i < tiles.length; i++)
{
var graphic = parseInt(tiles[i].Graphic(), 16);
if (trees.indexOf(graphic) != -1)
LumberTree(tiles[i]);
}
Orion.Wait(1000);
}
}
function UnloadLogs()
{
var list = Orion.FindTypeEx('0x1BDD|0x0F90');
for (var i = 0; i < list.length; i++)
{
var found = Orion.FindType(list[i].Graphic(), list[i].Color(), lastcontainer);
if (found.length != 0)
Orion.MoveItem(list[i].Serial(), 0, found[0]);
else
Orion.MoveItem(list[i].Serial(), 0, lastcontainer);
Orion.Wait(400);
}
}
function CheckHP()
{
while (true)
{
if (Player.Hits('%') < 90)
Orion.PlayWav('C:/1.wav');
Orion.Wait(1000);
}
}