SetBadLocation
Marks a map tile as impassable for the pathfinding engine.
X — horizontal map coordinate.
Y — vertical map coordinate.
After calling this method, the pathfinder (MoveXY, MoveXYZ, GetPathArray, GetPathArray3D) will treat the specified tile as blocked and will route around it.
This is useful for marking tiles that are technically passable but contain obstacles the default pathfinder does not recognize (e.g., custom shard objects, NPC-blocked tiles, or trap locations).
Use ClearBadLocationList to clear all bad location entries.
Does nothing if the character is not connected or UO data is not loaded.
Помечает тайл карты как непроходимый для системы поиска пути.
X — горизонтальная координата карты.
Y — вертикальная координата карты.
После вызова этого метода система поиска пути (MoveXY, MoveXYZ, GetPathArray, GetPathArray3D) будет считать указанный тайл заблокированным и прокладывать маршрут в обход.
Полезно для пометки тайлов, которые технически проходимы, но содержат препятствия, не распознаваемые стандартным поиском пути (например, объекты кастомных шардов, тайлы с NPC или ловушки).
Используйте ClearBadLocationList для очистки всего списка заблокированных локаций.
Не выполняет действий, если персонаж не подключён или данные UO не загружены.
procedure SetBadLocation(X: Word; Y: Word);
def SetBadLocation(X: int, Y: int) -> None: ...
begin
// Mark a known trap tile
SetBadLocation(1234, 5678);
AddToSystemJournal('Marked tile (1234, 5678) as bad');
// Now movement will avoid this tile
MoveXY(1250, 5690, True, 1, True);
end.
# Mark a known trap tile
SetBadLocation(1234, 5678)
AddToSystemJournal('Marked tile (1234, 5678) as bad')
# Now movement will avoid this tile
MoveXY(1250, 5690, True, 1, True)