API UO GetScriptsCount uk - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

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