Дополнительные ловушки прицелов:
В ASM реализованы несколько дополнительных ловушек прицелов. Практически все их можно заменить громоздкими функциями, но делать это следует только в том случае если вас не устраивает их функциональность. Такое может быть на некоторых шардах. Но лучше не быть эгоистом и предварительно обсудить со мной возможности их модернизации.

number asmWaitTragetMapTile(string LogicType, number X, number Y, number Map)
Если ячейка карты Map в координатах X,Y принадлежит логическому типу LogicType по таблице карты, функция установит ловушку прицела UO.WaitTargetTile('0',STR(X),STR(Y),STR(UO.asmMapGetZ(X,Y))) и вернет 1. В противном случае функция вернет 0.
Функция не будет работать в тех местах, где персонаж находится ниже уровня карты и всегда будет возвращать 0. Например в шахтах. Это сделано для вашей собственной безопасности, поскольку ни один трезвый ГМ не пройдет мимо персонажа, копающего потолок в шахте.

number asmWaitTragetStaticTile(string LogicType, number X, number Y, number Map)
Если на карте Map в координатах X,Y есть статичный объект, принадлежащий логическому типу LogicType по таблице статики, функция установит на него ловушку прицела UO.WaitTargetTile(***) и вернет 1. В противном случае функция вернет 0.

Пример:
sub main()
Var CanMine
  UO.asmTLMapOpen('TLMapRock.txt'); Загрузим таблицу типов карты для скал
  UO.asmTLStaticOpen('TLStaticRock.txt'); Загрузим таблицу типов статики для скал
  CanMine=UO.asmWaitTargetMapTile('rock',UO.GetX(),UO.GetY(),0); Попытаемся установить прицел на карту
  If CanMine Then; Если получилось
    UO.UseType('0x0E85'); Используем кирку
  Else; Если не получилось
    CanMine=UO.asmWaitTargetStaticTile('rock',UO.GetX(),UO.GetY(),0); Попытаемся установить прицел на статику
    If CanMine Then; Если получилось
      UO.UseType('0x0E85'); Используем кирку
    EndIf
  EndIf
end sub