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 на эти команды без чтения их контракта.