Runtime API Return Values - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

Return Values

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

Тип результата и его смысл — разные вещи. Integer может быть количеством, индексом, serial или логическим флагом. Any не сообщает точный смысл результата; читайте раздел «Возвращает» конкретной команды.

Результат Как использовать
Логический 1/0 Только если контракт определяет 1 как успех/истину и 0 как отказ/ложь, допустимы сравнения с TRUE/FALSE без кавычек.
Количество Сравнивайте с числом. Количество 1 само по себе не делает команду логической.
Serial / ID Это идентификатор объекта. Проверяйте предусмотренное командой значение «не найдено», а не предполагаемое true/false.
Type / graphic Графика/вид объекта, а не его serial.
Индекс Ноль может быть первым элементом; некоторые команды используют отрицательное значение как отсутствие результата.
Массив / запись Извлекайте элементы/поля согласно описанию команды.
Unit Возвращаемого значения нет. Сам вызов выполняет действие; присваивание результата не является проверкой успеха.

Сохранить результат один раз

SUB Main()
    VAR x = UO.GetX()
    VAR y = UO.GetY()
    # Уже текущая точка: демонстрирует проверку результата без дальнего маршрута.
    VAR arrived = UO.NewMoveXY(x, y, FALSE, 0, TRUE)
    IF arrived = TRUE THEN
        UO.Print('Destination reached')
    END IF
END SUB

В NewMoveXY результат 1/0 логический, поэтому arrived = 1 эквивалентно arrived = TRUE. Повторный вызов в условии повторяет действие — используйте сохранённую переменную.

Принят запрос или завершено действие

У MoveItem успешная отправка запроса отличается от режима ожидания изменения мира. У FindCount результат зависит от выбранной формы: проверяйте аргументы. GetType возвращает графику объекта. Не распространяйте правило true/false на эти команды без чтения их контракта.