Scripting Quick Start - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

Быстрый старт Basic Script

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

Первый скрипт

Создайте файл:

SUB Main()
    UO.Print('Script started')
    UO.Wait(500)
    UO.Print('Script finished')
END SUB

Сохраните его и нажмите Run Current Script (F5) либо Start Script (SUB Main) (Ctrl+F5).

Переменная и условие

SUB Main()
    VAR axe = UO.FindType(0x0F43, -1, backpack, -1, TRUE)

    IF axe <> 0 THEN
        UO.Print('Axe found: ' + CStr(axe))
    ELSE
        UO.Print('Axe not found')
    END IF
END SUB

Точную сигнатуру UO.FindType всегда сверяйте с API Manual текущего Runtime.

Пользовательская функция

FUNCTION PercentOf(BYVAL currentValue, BYVAL maximumValue)
    IF maximumValue <= 0 THEN
        RETURN 0
    END IF

    RETURN CInt((currentValue * 100) / maximumValue)
END FUNCTION

SUB Main()
    VAR hpPercent = PercentOf(UO.GetHP(), UO.GetMaxHP())
    UO.Print('HP: ' + CStr(hpPercent) + '%')
END SUB

Длительные циклы

Всегда оставляйте Runtime возможность вернуть управление клиенту:

SUB Main()
    WHILE UO.GetDead() = 0
        ' Выполнение полезной проверки
        UO.Wait(100)
    WEND
END SUB

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

Проверка перед запуском

  1. Убедитесь, что есть ровно одна нужная точка входа SUB Main().
  2. Нажмите Validate (F6).
  3. Исправьте Problems.
  4. Для поиска ошибки используйте Start Debugging (F4).
  5. Поставьте breakpoint через F9 и проходите код F10/F11.

Где искать команды

API Manual содержит только зарегистрированные Runtime-команды. Пользовательские SUB и FUNCTION текущего файла отображаются в Outline, но не добавляются в Runtime API Manual.