I am getting the same error when using BlindWalkMS, if i use BlindWalkMM there is no problem.
Note: that the original code is not mine.
Simba Code:
procedure chopTree;
var tempTree : TreeObject;
rSTile : Tpoint;
tempObject : TReflectObject;
i, objectID : integer;
_objects : TReflectobjecTArray;
tempTrees : TreeObjectArray;
begin
Debug('Looking for tree...');
tempTree.Tile.X := 0;
tempTrees := UseLocation.TreeObjects.getAliveTrees;
if length(tempTrees) <> 0 then begin
tempTree := tempTrees.getClosestTree;
end else begin
tempTrees := UseLocation.TreeObjects.getDeadTrees;
if length(tempTrees) <> 0 then
begin
tempTree := UseLocation.TreeObjects.getClosestTreeTime;
if tempTree.isValid then
begin
if not R_TileOnMS(tempTree.Tile, rsTile, tempTree.Offset[0], tempTree.Offset[1], tempTree.Offset[2]) then
if not Reflect.Tiles.NearTile(TempTree.Tile, 5) then
begin
locPlayer.BlindWalkMM(Point(tempTree.Tile.x + tempTree.TileOffset[0], tempTree.Tile.y + tempTree.TileOffset[1]), 5);
locPlayer.FFlag(2+randomRange(-2, 2), 5000+random(500));
sleep(random(1500));
end;
tempTree.Tile.X := 0;
end;
end else
exit;
end;
if tempTree.isValid then
begin
PreviousTree := UseLocation.TreeObjects.getClosestTree;
Debug('Going to chop tree.');
if not R_TileOnMS(tempTree.Tile, rsTile, tempTree.Offset[0], tempTree.Offset[1], tempTree.Offset[2]) then
begin
// if i use locPlayer.BlindWalkMS the error occurs
locPlayer.BlindWalkMM(Point(tempTree.Tile.x + tempTree.TileOffset[0], tempTree.Tile.y + tempTree.TileOffset[1]), 5);
locPlayer.FFlag(2+randomRange(-2, 2), 5000+random(500));
sleep(random(1500));
end;
Reflect.Interfaces.CloseAll;
if R_TileOnMS(tempTree.Tile, rsTile, tempTree.Offset[0], tempTree.Offset[1], tempTree.Offset[2]) then
begin
if R_InteractTile(tempTree.Tile, tempTree.Options, tempTree.Offset[0], tempTree.Offset[1], tempTree.Offset[2]) then
begin
sleep(random(1000));
locPlayer.FFlag(0, 5000+random(500));
sleep(1000+random(1000));
tempObject.GetAt(ObjGame, tempTree.Tile);
if not Reflect.Smart.IsNull(tempObject.Reference) then
objectID := tempObject.GetId
else
objectID := -1;
while locPlayer.IsLoggedIn and inIntArray(TempTree.AliveIDs, objectID) and
(inIntArray(ChopAnimationIDs, locPlayer.GetAnimation)) and
not Reflect.Inv.IsFull and not locPlayer.IsUnderAttack do
begin
randomHandler;
FixActive;
Debug('Chopping tree...');
tempObject.GetAt(ObjGame, tempTree.Tile);
if not Reflect.Smart.IsNull(tempObject.Reference) then
objectID := tempObject.GetId
else
objectID := -1;
end;
end;
end;
end;
end;