UO Topic movement - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

Movement

Home · BASIC · UO API · A–Z · Examples · Languages

Движение персонажа, построение пути, двери, препятствия и задержки шагов. Команды переноса вещей находятся в Items → Moving Items.

Разделы

Тема Команды и пояснения
Move UO.Move
MoveXY UO.MoveXY
MoveXYZ UO.MoveXYZ
NewMoveXY UO.NewMoveXY
Step UO.Step
StepQ UO.StepQ
PMove UO.PMove
Direction UO.Direction
CalcDir UO.CalcDir
AlwaysRun UO.AlwaysRun
Pathfinding UO.GetPathArray · UO.GetPathArray3D · UO.NewMoveXY
GetPathArray UO.GetPathArray
GetPathArray3D UO.GetPathArray3D
StealthPath UO.StealthPath — путь к папке клиента, не игровой маршрут; см. Profiles & Configuration.
Doors UO.OpenDoor · UO.LastStepQUsedDoor · UO.moveOpenDoor
Obstacles UO.IsWorldCellPassable · UO.SetBadLocation · UO.moveThroughNPC · UO.moveThroughCorner
Movement Settings UO.moveCheckStamina · UO.moveExitOnDisconnect · UO.moveHeuristicMult · UO.moveTurnCost · UO.moveBetweenTwoCorners
Predicted X / Y / Z UO.PredictedX · UO.PredictedY · UO.PredictedZ
Movement Timers UO.GetRunMountTimer · UO.GetRunUnMountTimer · UO.GetWalkMountTimer · UO.GetWalkUnmountTimer · UO.SetRunMountTimer · UO.SetRunUnmountTimer · UO.SetWalkMountTimer · UO.SetWalkUnmountTimer

Все команды темы

Movement

UO.Move · UO.MoveXY · UO.MoveXYZ · UO.NewMoveXY · UO.Step · UO.StepQ · UO.PMove · UO.MoveOn · UO.MoveOff · UO.MoverStop · UO.CancelMove · UO.Moving · UO.IsMoving · UO.GetRun · UO.IsRunning · UO.AlwaysRun · UO.FixWalk

Direction

UO.Dir · UO.Direction · UO.GetDir · UO.GetDirection · UO.CalcDir · UO.PredictedDirection

Pathfinding

UO.GetPathArray · UO.GetPathArray3D · UO.AddStep · UO.AddDir

Doors

UO.OpenDoor · UO.LastStepQUsedDoor

Movement Settings

UO.moveBetweenTwoCorners · UO.moveCheckStamina · UO.moveExitOnDisconnect · UO.moveHeuristicMult · UO.moveOpenDoor · UO.moveThroughCorner · UO.moveThroughNPC · UO.moveTurnCost

Predicted X / Y / Z

UO.PredictedX · UO.PredictedY · UO.PredictedZ

Movement Timers

UO.GetRunMountTimer · UO.GetRunUnMountTimer · UO.GetWalkMountTimer · UO.GetWalkUnmountTimer · UO.SetRunMountTimer · UO.SetRunUnmountTimer · UO.SetWalkMountTimer · UO.SetWalkUnmountTimer

Примеры по теме

Параметры, требования к состоянию клиента и результат каждого вызова описаны в связанной карточке. Перед игровыми действиями замените демонстрационные serial, координаты и имена на свои.

UO.NewMoveXY

Полная карточка: параметры, возврат и разбор

SUB Main()
    # x/y — мировая цель; Optimized=TRUE, Accuracy=0 требуют точных X/Y, Running=FALSE задаёт
    # ходьбу.
    # ok — Integer 1 или 0, а не количество пройденных клеток. Цель должна быть доступна на текущей
    # карте.

    VAR x = UO.GetX() + 3
    VAR y = UO.GetY()
    VAR ok = UO.NewMoveXY(x, y, TRUE, 0, FALSE)
    IF ok THEN
        UO.Print('Destination reached')
    ELSE
        UO.Print('Destination not reached')
    END IF
END SUB

UO.GetPathArray3D

Полная карточка: параметры, возврат и разбор

SUB Main()
    # Первые три значения — исходные X/Y/Z; следующие три — назначение.
    # map=WorldNum(), accuracyXY=0, accuracyZ=0 требуют точной позиции. run=FALSE не запускает
    # ходьбу.

    VAR x = UO.GetX()
    VAR y = UO.GetY()
    VAR z = UO.GetZ()
    VAR path = UO.GetPathArray3D(x, y, z, x + 4, y, z, UO.WorldNum(), 0, 0, FALSE)
    IF GetArrayLength(path) > 0 THEN
        UO.Print('Steps: ' + STR(GetArrayLength(path) - 1))
    END IF
END SUB