UO Topic world geometry - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
World & Geometry
Home · BASIC · UO API · A–Z · Examples · Languages
Координаты, расстояния, линия видимости, проходимость и данные карты. Получение маршрута описано отдельно в Movement.
Разделы
| Тема | Команды и пояснения |
|---|---|
| X / Y / Z | UO.GetX · UO.GetY · UO.GetZ |
| Distance | UO.GetDistance · UO.Dist |
| LOS | UO.CheckLOS · UO.LOSOptions |
| World Number | UO.WorldNum |
| World Cells | UO.GetWorldCell · UO.GetWorldTilesArray |
| Passability | UO.IsWorldCellPassable · UO.GetNextStepZ |
| Surface Z | UO.GetSurfaceZ |
| Map Cells | UO.GetMapCell |
| Land Tiles | UO.GetLandTileAt · UO.GetLandTileData · UO.GetLandTilesArray · UO.GetLandTilesArrayEx |
| Static Tiles | UO.GetStaticTileAt · UO.GetStaticTileData · UO.GetStaticTiles · UO.GetStaticTilesArray · UO.GetStaticTilesArrayEx |
| Tile Flags | UO.GetTileFlags · UO.ConvertIntegerToFlags |
| Tile Height | UO.GetTileHeight |
| Tile Layer | UO.GetTileLayer |
| Tile Name | UO.GetTileName |
| Water Tiles | UO.IsWaterTile |
| Tree Tiles | UO.IsTreeTile |
| Mine Tiles | UO.IsMineTile |
Все команды темы
X / Y / Z
UO.X · UO.Y · UO.Z · UO.GetX · UO.GetY · UO.GetZ
Distance
LOS
World Number
World Cells / Passability
UO.GetWorldCell · UO.GetMapCell · UO.IsWorldCellPassable · UO.GetSurfaceZ · UO.GetNextStepZ · UO.GetWorldTilesArray
Land Tiles
UO.GetLandscapeTile · UO.GetLandTileAt · UO.GetLandTileData · UO.GetLandTilesArray · UO.GetLandTilesArrayEx
Static Tiles
UO.GetStaticArt · UO.GetStaticTileAt · UO.GetStaticTileData · UO.GetStaticTiles · UO.GetStaticTilesArray · UO.GetStaticTilesArrayEx · UO.ReadStaticsXY · UO.PrivateGetTile · UO.GetTileXYM · UO.GetLayerCount
Tile Properties
UO.GetTileFlags · UO.GetTileHeight · UO.GetTileLayer · UO.GetTileName · UO.IsWaterTile · UO.IsTreeTile · UO.IsMineTile · UO.ConvertIntegerToFlags
Client Statics
UO.AddUserStatic · UO.ClearUserStatics · UO.GetUserStatic · UO.GetUserStatics · UO.RemoveUserStatic · UO.UserStaticExists
Примеры по теме
Параметры, требования к состоянию клиента и результат каждого вызова описаны в связанной карточке. Перед игровыми действиями замените демонстрационные serial, координаты и имена на свои.
UO.GetDistance
Полная карточка: параметры, возврат и разбор
SUB Main()
# target — serial, не type. Проверка Exists не позволяет принять ноль неизвестного объекта за
# близкую цель.
# distance<=2 проверяет дальность по X/Y. Видимость и проходимость проверяются отдельно.
VAR target = UO.GetSerial('lasttarget')
IF UO.Exists(target) THEN
VAR distance = UO.GetDistance(target)
IF distance <= 2 THEN
UO.Print('Target is within two tiles')
END IF
END IF
END SUB
UO.IsWorldCellPassable
Полная карточка: параметры, возврат и разбор
SUB Main()
# x/y/z — исходная позиция, x+1/y — соседняя клетка, шестой параметр z — запасной Z, последний —
# текущая карта. result[0] проверяется до использования result[1].
VAR x = UO.GetX()
VAR y = UO.GetY()
VAR z = UO.GetZ()
VAR result = UO.IsWorldCellPassable(x,y,z,x+1,y,z,UO.WorldNum())
IF result[0] = TRUE THEN
UO.Print('Passable, Z=' + CStr(result[1]))
ELSE
UO.Print('Blocked')
END IF
END SUB