Program Lumber;
{$Include 'all.inc'}
function returnTreesArray(x1, y1, x2, y2 : integer) : array of TFoundTile;
var foundTiles : TFoundTilesArray;
trees : array of TFoundTile;
treeTiles : array of word;
i, j, n, tilesCnt : integer;
begin
treeTiles := [3230, 3277, 3280, 3283, 3286, 3289, 3291, 3294, 3296, 3299, 3302];
for i := 0 to getArrayLength(treeTiles) - 1 do
begin
tilesCnt := getStaticTilesArray(x1, y1, x2, y2, worldNum, treeTiles, foundTiles);
n := getArrayLength(trees);
setArrayLength(trees, n + tilesCnt);
for j := 0 to tilesCnt - 1 do trees[n + j] := foundTiles[j];
end;
result := trees;
addToSystemJournal('Total ' + intToStr(getArrayLength(result)) + ' tiles');
end;
Procedure Chop(Tile: Byte; X, Y, Z: Integer);
Var
TimeBegin: TDateTime;
Begin
AddToSystemJournal('Координаты дерева x: '+IntToStr(x)+' y: '+IntToStr(y)+' z: '+IntToStr(z)+' tile: '+IntToStr(tile));
NewMoveXY(X, Y, False ,1 ,True);
UseType($0F43, $FFFF);
TargetTile(Tile, X, Y, Z);
While (InJournalBetweenTimes('You put the logs in your pack.', TimeBegin, Now) <> -1) Do
Wait(100);
End;
Var
i, x1, y1, x2, y2: Integer;
TreesArray: array of TFoundTile;
Begin
x1 := GetX(self)-24;
y1 := GetY(self)-24;
x2 := GetX(self)+24;
y2 := GetY(self)+24;
TreesArray := returnTreesArray(x1, y1, x2, y2);
For i := 0 To GetArrayLength(TreesArray)-1 Do
Begin
Chop(TreesArray.Tile, TreesArray.X, TreesArray.Y, TreesArray.Z);
End;
End.
В системно журнале выдает
Code: Select all
Координаты дерева x: 2908 y: 693 z: 3 tile: 205
Code: Select all
Tile: 3277 X: 2908 Y: 693 Z: 2