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

UO.Dist · UO.GetDistance

LOS

UO.CheckLOS · UO.LOSOptions

World Number

UO.WorldNum · UO.GetWorldNum

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