Skip to content

API UO GetScriptsCount

Codex edited this page Sep 15, 2026 · 4 revisions

UO.GetScriptsCount

ClassicUO • Runtime API

Считает активные запуски в этом клиенте.

Точный синтаксис

UO.GetScriptsCount() -> Integer

Параметры

Параметров нет.

Возвращает

Integer >= 0: число активных запусков, включая приостановленные. Это количество, а не Boolean и не индекс скрипта.

Поведение

  • Учитываются выполняющиеся и приостановленные запуски; завершённые и получившие запрос отмены исключаются. Работающий скрипт обычно учитывает и себя. Просто загруженная вкладка IDE запуском не считается.
  • Индексы — текущие позиции в порядке запуска. Запуск/остановка скриптов могут сдвинуть позиции. Разные вызовы не образуют общий атомарный снимок; перед последующей командой управления перечитайте список.
  • Закрытие Basic IDE не удаляет активные запуски. Команды относятся к этому клиенту, а не к другим клиентам или процессам Windows.
  • GetScriptsList даёт индексы, GetScriptsCount — количество, GetScriptState — код из трёх состояний. Не подменяйте одно другим и не считайте любой ненулевой результат значением true.
  • Аргументов нет. Подсчёт не сортирует список и не меняет состояние запусков.

Внутренние функции: от вызова до результата

Ниже указаны реальные методы клиента. В примерах Basic приведены полные вызываемые функции; имена внутренних методов C# не являются дополнительными командами скрипта.

1. ExecuteStealthCompatibility

Runtime вызывает зарегистрированную UO-команду и упаковывает ответ моста как Integer, String или Array.

Integer >= 0: число активных запусков, включая приостановленные. Это количество, а не Boolean и не индекс скрипта.

Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция ExecuteStealthCompatibility.

2. GetScriptsCount

Мост обращается к менеджеру запусков именно этого клиента.

Аргументов нет. Подсчёт не сортирует список и не меняет состояние запусков.

Исходник проекта: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функция GetScriptsCount.

3. GetScriptsCount

_running.Count(entry => !entry.Value.Cancellation.IsCancellationRequested)

Индексы — текущие позиции в порядке запуска. Запуск/остановка скриптов могут сдвинуть позиции. Разные вызовы не образуют общий атомарный снимок; перед последующей командой управления перечитайте список.

Исходник проекта: src/ClassicUO.Client/Game/Managers/YokoInjectionManager.cs; функция GetScriptsCount.

Закрытие Basic IDE не удаляет активные запуски. Команды относятся к этому клиенту, а не к другим клиентам или процессам Windows.

Примеры

Первый вызов и результат

# Первый вызов и результат
#
# Считает активные запуски в этом клиенте.
#
# Integer >= 0: число активных запусков, включая приостановленные. Это количество, а не Boolean
# и не индекс скрипта.

SUB Main()
    # Запускайте Sub Main. Число 0, где оно передано, обозначает индекс; пустые скобки означают
    # отсутствие аргументов. Текст Printтолько сообщение примера.
    # Аргументов нет. Подсчёт не сортирует список и не меняет состояние запусков.
    # Integer >= 0: число активных запусков, включая приостановленные. Это количество, а не Boolean
    # и не индекс скрипта.

    Dim count=UO.GetScriptsCount()
    UO.Print(CStr(count))
END SUB

Разбор параметров и выполнения:

  • Запускайте Sub Main. Число 0, где оно передано, обозначает индекс; пустые скобки означают отсутствие аргументов. Текст Print — только сообщение примера.
  • Аргументов нет. Подсчёт не сортирует список и не меняет состояние запусков.
  • Integer >= 0: число активных запусков, включая приостановленные. Это количество, а не Boolean и не индекс скрипта.

Использование в цикле или условии

# Использование в цикле или условии
#
# Считает активные запуски в этом клиенте.
#
# Integer >= 0: число активных запусков, включая приостановленные. Это количество, а не Boolean
# и не индекс скрипта.

SUB Main()
    # Это отдельный пример совместного использования команд. Индексация массива начинается с нуля;
    # перед обращением проверяйте длину. Wait(250), где он используется, ждёт 250 миллисекунд.
    # Аргументов нет. Подсчёт не сортирует список и не меняет состояние запусков.
    # Integer >= 0: число активных запусков, включая приостановленные. Это количество, а не Boolean
    # и не индекс скрипта.

    Dim before=UO.GetScriptsCount()
    Wait(250)
    Dim after=UO.GetScriptsCount()
    UO.Print(CStr(after-before))
END SUB

Разбор параметров и выполнения:

  • Это отдельный пример совместного использования команд. Индексация массива начинается с нуля; перед обращением проверяйте длину. Wait(250), где он используется, ждёт 250 миллисекунд.
  • Аргументов нет. Подсчёт не сортирует список и не меняет состояние запусков.
  • Integer >= 0: число активных запусков, включая приостановленные. Это количество, а не Boolean и не индекс скрипта.

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

# Полная вспомогательная функция
#
# Считает активные запуски в этом клиенте.
#
# Integer >= 0: число активных запусков, включая приостановленные. Это количество, а не Boolean
# и не индекс скрипта.

SUB Main()
    # Под Main приведена функция целиком. Её параметры и результат объясняются отдельно от
    # API-команды, которую она вызывает.
    # HasOtherScripts сравнивает количество с 1: вызывающий скрипт обычно занимает одну запись. В
    # отличие от GetScriptsCount, вспомогательная функция возвращает true/false.
    # Integer >= 0: число активных запусков, включая приостановленные. Это количество, а не Boolean
    # и не индекс скрипта.

    If HasOtherScripts() Then
        UO.Print("Other executions are active")
    Else
        UO.Print("No other active executions")
    End If
END SUB

Function HasOtherScripts() As Boolean
    Dim count=UO.GetScriptsCount()
    Return count > 1
End Function

Разбор параметров и выполнения:

  • Под Main приведена функция целиком. Её параметры и результат объясняются отдельно от API-команды, которую она вызывает.
  • HasOtherScripts сравнивает количество с 1: вызывающий скрипт обычно занимает одну запись. В отличие от GetScriptsCount, вспомогательная функция возвращает true/false.
  • Integer >= 0: число активных запусков, включая приостановленные. Это количество, а не Boolean и не индекс скрипта.

en · ru · uk · fr · de · it · es · zh-tw · ja · ko

Basic

Clone this wiki locally